selftests: tls: test some invalid inputs for setsockopt
authorSabrina Dubroca <sd@queasysnail.net>
Fri, 25 Aug 2023 21:35:08 +0000 (23:35 +0200)
committerJakub Kicinski <kuba@kernel.org>
Mon, 28 Aug 2023 00:17:40 +0000 (17:17 -0700)
This test will need to be updated if new ciphers are added.

Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Link: https://lore.kernel.org/r/bfcfa9cffda56d2064296ab7c99a05775dd4c28e.1692977948.git.sd@queasysnail.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/tls.c

index 0da6952..297d972 100644 (file)
@@ -241,6 +241,31 @@ TEST_F(tls_basic, base_base)
        EXPECT_EQ(memcmp(buf, test_str, send_len), 0);
 };
 
+TEST_F(tls_basic, bad_cipher)
+{
+       struct tls_crypto_info_keys tls12;
+
+       tls12.crypto_info.version = 200;
+       tls12.crypto_info.cipher_type = TLS_CIPHER_AES_GCM_128;
+       EXPECT_EQ(setsockopt(self->fd, SOL_TLS, TLS_TX, &tls12, sizeof(struct tls12_crypto_info_aes_gcm_128)), -1);
+
+       tls12.crypto_info.version = TLS_1_2_VERSION;
+       tls12.crypto_info.cipher_type = 50;
+       EXPECT_EQ(setsockopt(self->fd, SOL_TLS, TLS_TX, &tls12, sizeof(struct tls12_crypto_info_aes_gcm_128)), -1);
+
+       tls12.crypto_info.version = TLS_1_2_VERSION;
+       tls12.crypto_info.cipher_type = 59;
+       EXPECT_EQ(setsockopt(self->fd, SOL_TLS, TLS_TX, &tls12, sizeof(struct tls12_crypto_info_aes_gcm_128)), -1);
+
+       tls12.crypto_info.version = TLS_1_2_VERSION;
+       tls12.crypto_info.cipher_type = 10;
+       EXPECT_EQ(setsockopt(self->fd, SOL_TLS, TLS_TX, &tls12, sizeof(struct tls12_crypto_info_aes_gcm_128)), -1);
+
+       tls12.crypto_info.version = TLS_1_2_VERSION;
+       tls12.crypto_info.cipher_type = 70;
+       EXPECT_EQ(setsockopt(self->fd, SOL_TLS, TLS_TX, &tls12, sizeof(struct tls12_crypto_info_aes_gcm_128)), -1);
+}
+
 FIXTURE(tls)
 {
        int fd, cfd;