Merge branch 'tls-expand-tls_cipher_size_desc-to-simplify-getsockopt-setsockopt'
authorJakub Kicinski <kuba@kernel.org>
Mon, 28 Aug 2023 00:17:44 +0000 (17:17 -0700)
committerJakub Kicinski <kuba@kernel.org>
Mon, 28 Aug 2023 00:17:45 +0000 (17:17 -0700)
commit4367d760ef82aa970cfb0fc370ed2777a6de2053
tree2efd76b5e4cbdddecd2a5d313fda6e6b8c21777e
parent5447b0805041a418d40e5bd05f3cd42700629c52
parentf3e444e31f9fa45ad59cc2d0e0c1bcc86eef4780
Merge branch 'tls-expand-tls_cipher_size_desc-to-simplify-getsockopt-setsockopt'

Sabrina Dubroca says:

====================
tls: expand tls_cipher_size_desc to simplify getsockopt/setsockopt

Commit 2d2c5ea24243 ("net/tls: Describe ciphers sizes by const
structs") introduced tls_cipher_size_desc to describe the size of the
fields of the per-cipher crypto_info structs, and commit ea7a9d88ba21
("net/tls: Use cipher sizes structs") used it, but only in
tls_device.c and tls_device_fallback.c, and skipped converting similar
code in tls_main.c and tls_sw.c.

This series expands tls_cipher_size_desc (renamed to tls_cipher_desc
to better fit this expansion) to fully describe a cipher:
 - offset of the fields within the per-cipher crypto_info
 - size of the full struct (for copies to/from userspace)
 - offload flag
 - algorithm name used by SW crypto

With these additions, we can remove ~350L of
     switch (crypto_info->cipher_type) { ... }
from tls_set_device_offload, tls_sw_fallback_init,
do_tls_getsockopt_conf, do_tls_setsockopt_conf, tls_set_sw_offload
(mainly do_tls_getsockopt_conf and tls_set_sw_offload).

This series also adds the ARIA ciphers to the tls selftests, and some
more getsockopt/setsockopt tests to cover more of the code changed by
this series.
====================

Link: https://lore.kernel.org/r/cover.1692977948.git.sd@queasysnail.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>