From: Vadim Fedorenko <vfedorenko@novek.ru>
To: Jakub Kicinski <kuba@kernel.org>, davem@davemloft.net
Cc: netdev@vger.kernel.org, linux-kselftest@vger.kernel.org,
shuah@kernel.org
Subject: Re: [PATCH net 2/2] selftests: tls: fix chacha+bidir tests
Date: Fri, 18 Jun 2021 23:03:04 +0100 [thread overview]
Message-ID: <2ab110a6-a2a0-c5c7-29e5-ed38fb438176@novek.ru> (raw)
In-Reply-To: <20210618202504.1435179-2-kuba@kernel.org>
On 18.06.2021 21:25, Jakub Kicinski wrote:
> 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 <kuba@kernel.org>
> ---
> 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);
> }
>
>
Acked-by: Vadim Fedorenko <vfedorenko@novek.ru>
next prev parent reply other threads:[~2021-06-18 22:10 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-18 20:25 [PATCH net 1/2] selftests: tls: clean up uninitialized warnings Jakub Kicinski
2021-06-18 20:25 ` [PATCH net 2/2] selftests: tls: fix chacha+bidir tests Jakub Kicinski
2021-06-18 22:03 ` Vadim Fedorenko [this message]
2021-06-18 22:02 ` [PATCH net 1/2] selftests: tls: clean up uninitialized warnings Vadim Fedorenko
2021-06-21 19:20 ` patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2ab110a6-a2a0-c5c7-29e5-ed38fb438176@novek.ru \
--to=vfedorenko@novek.ru \
--cc=davem@davemloft.net \
--cc=kuba@kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=shuah@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).