diff options
author | Paolo Abeni <pabeni@redhat.com> | 2020-01-21 16:56:30 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-01-24 13:44:08 +0100 |
commit | 65492c5a6ab5df5091a77562dbcca2d2dc3877c0 (patch) | |
tree | ce025683cbfca0696b85d62a73cc01f28500bf89 /net/mptcp/options.c | |
parent | 048d19d444be1e42abca19a6b969343954ae4e17 (diff) | |
download | linux-65492c5a6ab5df5091a77562dbcca2d2dc3877c0.tar.gz linux-65492c5a6ab5df5091a77562dbcca2d2dc3877c0.tar.bz2 linux-65492c5a6ab5df5091a77562dbcca2d2dc3877c0.zip |
mptcp: move from sha1 (v0) to sha256 (v1)
For simplicity's sake use directly sha256 primitives (and pull them
as a required build dep).
Add optional, boot-time self-tests for the hmac function.
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Christoph Paasch <cpaasch@apple.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mptcp/options.c')
-rw-r--r-- | net/mptcp/options.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/net/mptcp/options.c b/net/mptcp/options.c index 1fa8496f3551..1aec742ca8e1 100644 --- a/net/mptcp/options.c +++ b/net/mptcp/options.c @@ -9,6 +9,11 @@ #include <net/mptcp.h> #include "protocol.h" +static bool mptcp_cap_flag_sha256(u8 flags) +{ + return (flags & MPTCP_CAP_FLAG_MASK) == MPTCP_CAP_HMAC_SHA256; +} + void mptcp_parse_option(const unsigned char *ptr, int opsize, struct tcp_options_received *opt_rx) { @@ -29,7 +34,7 @@ void mptcp_parse_option(const unsigned char *ptr, int opsize, break; flags = *ptr++; - if (!((flags & MPTCP_CAP_FLAG_MASK) == MPTCP_CAP_HMAC_SHA1) || + if (!mptcp_cap_flag_sha256(flags) || (flags & MPTCP_CAP_EXTENSIBILITY)) break; @@ -399,7 +404,7 @@ void mptcp_write_options(__be32 *ptr, struct mptcp_out_options *opts) *ptr++ = htonl((TCPOPT_MPTCP << 24) | (len << 16) | (MPTCPOPT_MP_CAPABLE << 12) | (MPTCP_SUPPORTED_VERSION << 8) | - MPTCP_CAP_HMAC_SHA1); + MPTCP_CAP_HMAC_SHA256); put_unaligned_be64(opts->sndr_key, ptr); ptr += 2; if (OPTION_MPTCP_MPC_ACK & opts->suboptions) { |