Subject: Re: [PATCH net-next 0/5] tls: implement key updates for TLS1.3

From: Jakub Kicinski <[email-masked]>
Date: Tue, 17 Jan 2023 18:03:51 -0800

Please CC all the maintainers.

On Tue, 17 Jan 2023 14:45:26 +0100 Sabrina Dubroca wrote:
> This adds support for receiving KeyUpdate messages (RFC 8446, 4.6.3
> [1]). A sender transmits a KeyUpdate message and then changes its TX
> key. The receiver should react by updating its RX key before
> processing the next message.
> 
> This patchset implements key updates by:
>  1. pausing decryption when a KeyUpdate message is received, to avoid
>     attempting to use the old key to decrypt a record encrypted with
>     the new key
>  2. returning -EKEYEXPIRED to syscalls that cannot receive the
>     KeyUpdate message, until the rekey has been performed by userspace

Why? We return to user space after hitting a cmsg, don't we?
If the user space wants to keep reading with the old key - 🤷️

>  3. passing the KeyUpdate message to userspace as a control message
>  4. allowing updates of the crypto_info via the TLS_TX/TLS_RX
>     setsockopts
> 
> This API has been tested with gnutls to make sure that it allows
> userspace libraries to implement key updates [2]. Thanks to Frantisek
> Krenzelok <[email-masked]> for providing the implementation in
> gnutls and testing the kernel patches.

Please explain why - the kernel TLS is not faster than user space, 
the point of it is primarily to enable offload. And you don't add
offload support here.
 
> Note: in a future series, I'll clean up tls_set_sw_offload and
> eliminate the per-cipher copy-paste using tls_cipher_size_desc.

Yeah, I think it's on Vadim's TODO list as well.