]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net/tls: reject offload of TLS 1.3
authorJakub Kicinski <jakub.kicinski@netronome.com>
Fri, 28 Jun 2019 23:07:59 +0000 (16:07 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 28 Jul 2019 06:28:35 +0000 (08:28 +0200)
[ Upstream commit 618bac45937a3dc6126ac0652747481e97000f99 ]

Neither drivers nor the tls offload code currently supports TLS
version 1.3. Check the TLS version when installing connection
state. TLS 1.3 will just fallback to the kernel crypto for now.

Fixes: 130b392c6cd6 ("net: tls: Add tls 1.3 support")
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/tls/tls_device.c

index f6e258e376119f067d688e71c0c8a125c61668ce..fdcf18c78bb5144303eea413b1eb39943f0b3a87 100644 (file)
@@ -746,6 +746,11 @@ int tls_set_device_offload(struct sock *sk, struct tls_context *ctx)
        }
 
        crypto_info = &ctx->crypto_send.info;
+       if (crypto_info->version != TLS_1_2_VERSION) {
+               rc = -EOPNOTSUPP;
+               goto free_offload_ctx;
+       }
+
        switch (crypto_info->cipher_type) {
        case TLS_CIPHER_AES_GCM_128:
                nonce_size = TLS_CIPHER_AES_GCM_128_IV_SIZE;
@@ -880,6 +885,9 @@ int tls_set_device_offload_rx(struct sock *sk, struct tls_context *ctx)
        struct net_device *netdev;
        int rc = 0;
 
+       if (ctx->crypto_recv.info.version != TLS_1_2_VERSION)
+               return -EOPNOTSUPP;
+
        /* We support starting offload on multiple sockets
         * concurrently, so we only need a read lock here.
         * This lock must precede get_netdev_for_sock to prevent races between