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

Dmitry Safonov
2021-11-05T01:50:01Z

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@gmail.com/T/#u

Cc: Andy Lutomirski <luto@amacapital.net>
Cc: David Ahern <dsahern@kernel.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Francesco Ruggeri <fruggeri@arista.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
Cc: Leonard Crestez <cdleonard@gmail.com>
Cc: linux-crypto@vger.kernel.org
Cc: netdev@vger.kernel.org

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