[PATCH 0/5] tcp/md5: Generic tcp_sig_pool

From: Dmitry Safonov
Date: Thu Nov 04 2021 - 21:50:01 EST


3 small fixes for unlikely issues.

The last patch adds tcp_sig_pool, which can be used to manage ahashes
besides md5 algorythm. It reuses tcp_md5sig_pool code and in my view is
a better alternative to [1] proposal, which uses shash for hasing
segments and frags. This also doesn't need introduction of an enum with
supported algorythms, which makes it possible to supply any
crypto-supported hashing algorythm from socket option syscall (like
struct xfrm_algo does in ipsec), reducing needless kernel code.

[1]: https://lore.kernel.org/all/5245f35901015acc6a41d1da92deb96f3e593b7c.1635784253.git.cdleonard@xxxxxxxxx/T/#u

Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxxx>
Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
Cc: Eric Dumazet <edumazet@xxxxxxxxxx>
Cc: Francesco Ruggeri <fruggeri@xxxxxxxxxx>
Cc: Jakub Kicinski <kuba@xxxxxxxxxx>
Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Cc: Hideaki YOSHIFUJI <yoshfuji@xxxxxxxxxxxxxx>
Cc: Leonard Crestez <cdleonard@xxxxxxxxx>
Cc: linux-crypto@xxxxxxxxxxxxxxx
Cc: netdev@xxxxxxxxxxxxxxx

Dmitry Safonov (5):
tcp/md5: Don't BUG_ON() failed kmemdup()
tcp/md5: Don't leak ahash in OOM
tcp/md5: Alloc tcp_md5sig_pool only in setsockopt()
tcp/md5: Use tcp_md5sig_pool_* naming scheme
tcp/md5: Make more generic tcp_sig_pool

include/net/tcp.h | 23 +++--
net/ipv4/tcp.c | 193 ++++++++++++++++++++++++++++-----------
net/ipv4/tcp_ipv4.c | 45 ++++-----
net/ipv4/tcp_minisocks.c | 5 +-
net/ipv6/tcp_ipv6.c | 43 +++++----
5 files changed, 207 insertions(+), 102 deletions(-)


base-commit: 8a796a1dfca2780321755033a74bca2bbe651680
--
2.33.1