Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2836063pxv; Mon, 12 Jul 2021 03:08:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzsQaR7K2sir0b+sOYBqmk1bCjM8N779wzrcsj8sZGYJ+0X3jRrc/85Ibu0CZvBs21AA6VK X-Received: by 2002:a92:c544:: with SMTP id a4mr38920332ilj.266.1626084510040; Mon, 12 Jul 2021 03:08:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626084510; cv=none; d=google.com; s=arc-20160816; b=CwpIkGRZWgCPGyuPptnSrvz3FjSDIhzmxwGAWEvFsMwgA1YQv59eigQbzwhLivcm0C H1tB/AsIO55auA2Bld1KoftNUvTXlO0fx4WWYJkLek6lpHHC/OeM+6QnlpMAfAQMcb/G fWEG+8Pjex9BtumeKab1c/vl6nhYqGLry71W8+CE1wMONvOsq/c9bb8XWuPODGmNfmDa kW/hMcz2mjKds4k4pLj56omcCkpiV4k+op2WVnO0vCdnWM1yi4A1co9d8m9+7HpfqnCs oVcsAQxPrzX/6e+twzOR+qJHx9PBnqbhg2UvtrYaQPtxUZHpy0WoCXk92s3sYIoqJiwZ CiuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=WBrfkeRYdGcl/YauiT18mAGCtDDEklQWvWbTb6XctXs=; b=A9xUhid2NKFUW9n9LWcI/E9U0KZwZF0onkhFyroOdqk2KU+Cq9UzdAs7XbEAVvOlLz KQe3dxnPjSsGWs7mGs4XRPLV9UBN1VigczBjUKfQQJwv4r0sf5K53bRuAUE6hLSckJF5 EteDwXvHojtQRQmlLPhuZCWLJTquJzlw8/8ZBONd5IlWRXd5wFc9ssMMKe1DNeDAFriX 0sTIvGHAVLCgCHAcySeVGYUsQ1iZ+gI1ypVoYxaoRvmk+neckElD98pD1eZvx/azb9mi R7vpOr1+HWEh/gh6p2rGZCtN6rgQQMRjhKPV+xm6zKwChdG4EGoCGquU/OtHW13l4TcI E9Ew== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="W4YNYuA/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r15si4583611jap.43.2021.07.12.03.08.18; Mon, 12 Jul 2021 03:08:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="W4YNYuA/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243746AbhGLHw4 (ORCPT + 99 others); Mon, 12 Jul 2021 03:52:56 -0400 Received: from mail.kernel.org ([198.145.29.99]:55898 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239190AbhGLHTJ (ORCPT ); Mon, 12 Jul 2021 03:19:09 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 511B461621; Mon, 12 Jul 2021 07:16:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626074172; bh=dUnfEYdCnzav6JuAymT1HVAkcNz9jqlKCpblGKHx1hA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=W4YNYuA/FRg3ktBOvC290MgAOYPqlTszIAxZ7B091nABKQzCNhUapLoEQZeHyAL2B hnGu31EgdS/NGD3mRFRPxMnUGadNXop8GU4avU1U22IASQk5NiH9UUq++qnXW3c7rm WBVkkEX9utlQJwuyn0DMYIN5S1CoPXgWDLLz3x9E= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jakub Kicinski , Vadim Fedorenko , "David S. Miller" , Sasha Levin Subject: [PATCH 5.12 447/700] selftests: tls: fix chacha+bidir tests Date: Mon, 12 Jul 2021 08:08:50 +0200 Message-Id: <20210712061024.092009687@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060924.797321836@linuxfoundation.org> References: <20210712060924.797321836@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jakub Kicinski [ Upstream commit 291c53e4dacd3a2cc3152d8af37f07f8496c594a ] ChaCha support did not adjust the bidirectional test. We need to set up KTLS in reverse direction correctly, otherwise these two cases will fail: tls.12_chacha.bidir tls.13_chacha.bidir Fixes: 4f336e88a870 ("selftests/tls: add CHACHA20-POLY1305 to tls selftests") Signed-off-by: Jakub Kicinski Acked-by: Vadim Fedorenko Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- tools/testing/selftests/net/tls.c | 67 ++++++++++++++++++------------- 1 file changed, 39 insertions(+), 28 deletions(-) diff --git a/tools/testing/selftests/net/tls.c b/tools/testing/selftests/net/tls.c index 58fea6eb588d..112d41d01b12 100644 --- a/tools/testing/selftests/net/tls.c +++ b/tools/testing/selftests/net/tls.c @@ -25,6 +25,35 @@ #define TLS_PAYLOAD_MAX_LEN 16384 #define SOL_TLS 282 +struct tls_crypto_info_keys { + union { + struct tls12_crypto_info_aes_gcm_128 aes128; + struct tls12_crypto_info_chacha20_poly1305 chacha20; + }; + size_t len; +}; + +static void tls_crypto_info_init(uint16_t tls_version, uint16_t cipher_type, + struct tls_crypto_info_keys *tls12) +{ + memset(tls12, 0, sizeof(*tls12)); + + switch (cipher_type) { + case TLS_CIPHER_CHACHA20_POLY1305: + tls12->len = sizeof(struct tls12_crypto_info_chacha20_poly1305); + tls12->chacha20.info.version = tls_version; + tls12->chacha20.info.cipher_type = cipher_type; + break; + case TLS_CIPHER_AES_GCM_128: + tls12->len = sizeof(struct tls12_crypto_info_aes_gcm_128); + tls12->aes128.info.version = tls_version; + tls12->aes128.info.cipher_type = cipher_type; + break; + default: + break; + } +} + static void memrnd(void *s, size_t n) { int *dword = s; @@ -145,33 +174,16 @@ FIXTURE_VARIANT_ADD(tls, 13_chacha) FIXTURE_SETUP(tls) { - union { - struct tls12_crypto_info_aes_gcm_128 aes128; - struct tls12_crypto_info_chacha20_poly1305 chacha20; - } tls12; + struct tls_crypto_info_keys tls12; struct sockaddr_in addr; socklen_t len; int sfd, ret; - size_t tls12_sz; self->notls = false; len = sizeof(addr); - memset(&tls12, 0, sizeof(tls12)); - switch (variant->cipher_type) { - case TLS_CIPHER_CHACHA20_POLY1305: - tls12_sz = sizeof(struct tls12_crypto_info_chacha20_poly1305); - tls12.chacha20.info.version = variant->tls_version; - tls12.chacha20.info.cipher_type = variant->cipher_type; - break; - case TLS_CIPHER_AES_GCM_128: - tls12_sz = sizeof(struct tls12_crypto_info_aes_gcm_128); - tls12.aes128.info.version = variant->tls_version; - tls12.aes128.info.cipher_type = variant->cipher_type; - break; - default: - tls12_sz = 0; - } + tls_crypto_info_init(variant->tls_version, variant->cipher_type, + &tls12); addr.sin_family = AF_INET; addr.sin_addr.s_addr = htonl(INADDR_ANY); @@ -199,7 +211,7 @@ FIXTURE_SETUP(tls) if (!self->notls) { ret = setsockopt(self->fd, SOL_TLS, TLS_TX, &tls12, - tls12_sz); + tls12.len); ASSERT_EQ(ret, 0); } @@ -212,7 +224,7 @@ FIXTURE_SETUP(tls) ASSERT_EQ(ret, 0); ret = setsockopt(self->cfd, SOL_TLS, TLS_RX, &tls12, - tls12_sz); + tls12.len); ASSERT_EQ(ret, 0); } @@ -854,18 +866,17 @@ TEST_F(tls, bidir) int ret; if (!self->notls) { - struct tls12_crypto_info_aes_gcm_128 tls12; + struct tls_crypto_info_keys tls12; - memset(&tls12, 0, sizeof(tls12)); - tls12.info.version = variant->tls_version; - tls12.info.cipher_type = TLS_CIPHER_AES_GCM_128; + tls_crypto_info_init(variant->tls_version, variant->cipher_type, + &tls12); ret = setsockopt(self->fd, SOL_TLS, TLS_RX, &tls12, - sizeof(tls12)); + tls12.len); ASSERT_EQ(ret, 0); ret = setsockopt(self->cfd, SOL_TLS, TLS_TX, &tls12, - sizeof(tls12)); + tls12.len); ASSERT_EQ(ret, 0); } -- 2.30.2