tls: retrun the correct IV in getsockopt
authorBoris Pismenny <borisp@mellanox.com>
Wed, 14 Feb 2018 08:46:06 +0000 (10:46 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 14 Feb 2018 20:05:19 +0000 (15:05 -0500)
Current code returns four bytes of salt followed by four bytes of IV.
This patch returns all eight bytes of IV.

fixes: 3c4d7559159b ("tls: kernel TLS support")
Signed-off-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tls/tls_main.c

index b0d5fce..a6c3702 100644 (file)
@@ -308,7 +308,8 @@ static int do_tls_getsockopt_tx(struct sock *sk, char __user *optval,
                        goto out;
                }
                lock_sock(sk);
-               memcpy(crypto_info_aes_gcm_128->iv, ctx->iv,
+               memcpy(crypto_info_aes_gcm_128->iv,
+                      ctx->iv + TLS_CIPHER_AES_GCM_128_SALT_SIZE,
                       TLS_CIPHER_AES_GCM_128_IV_SIZE);
                release_sock(sk);
                if (copy_to_user(optval,