From: Eric Biggers <ebiggers at kernel.org> To: mptcp at lists.01.org Subject: [MPTCP] [PATCH v2 4/5] mptcp: use sha256() instead of open coding Date: Wed, 08 Jul 2020 09:39:42 -0700 [thread overview] Message-ID: <20200708163943.52071-5-ebiggers@kernel.org> (raw) In-Reply-To: 20200708163943.52071-1-ebiggers@kernel.org [-- Attachment #1: Type: text/plain, Size: 2476 bytes --] From: Eric Biggers <ebiggers(a)google.com> Now that there's a function that calculates the SHA-256 digest of a buffer in one step, use it instead of sha256_init() + sha256_update() + sha256_final(). Reviewed-by: Ard Biesheuvel <ardb(a)kernel.org> Acked-by: Matthieu Baerts <matthieu.baerts(a)tessares.net> Cc: mptcp(a)lists.01.org Cc: Mat Martineau <mathew.j.martineau(a)linux.intel.com> Cc: Matthieu Baerts <matthieu.baerts(a)tessares.net> Signed-off-by: Eric Biggers <ebiggers(a)google.com> --- net/mptcp/crypto.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/net/mptcp/crypto.c b/net/mptcp/crypto.c index 3d980713a9e2..82bd2b54d741 100644 --- a/net/mptcp/crypto.c +++ b/net/mptcp/crypto.c @@ -32,11 +32,8 @@ void mptcp_crypto_key_sha(u64 key, u32 *token, u64 *idsn) { __be32 mptcp_hashed_key[SHA256_DIGEST_WORDS]; __be64 input = cpu_to_be64(key); - struct sha256_state state; - sha256_init(&state); - sha256_update(&state, (__force u8 *)&input, sizeof(input)); - sha256_final(&state, (u8 *)mptcp_hashed_key); + sha256((__force u8 *)&input, sizeof(input), (u8 *)mptcp_hashed_key); if (token) *token = be32_to_cpu(mptcp_hashed_key[0]); @@ -47,7 +44,6 @@ void mptcp_crypto_key_sha(u64 key, u32 *token, u64 *idsn) void mptcp_crypto_hmac_sha(u64 key1, u64 key2, u8 *msg, int len, void *hmac) { u8 input[SHA256_BLOCK_SIZE + SHA256_DIGEST_SIZE]; - struct sha256_state state; u8 key1be[8]; u8 key2be[8]; int i; @@ -67,13 +63,10 @@ void mptcp_crypto_hmac_sha(u64 key1, u64 key2, u8 *msg, int len, void *hmac) memcpy(&input[SHA256_BLOCK_SIZE], msg, len); - sha256_init(&state); - sha256_update(&state, input, SHA256_BLOCK_SIZE + len); - /* emit sha256(K1 || msg) on the second input block, so we can * reuse 'input' for the last hashing */ - sha256_final(&state, &input[SHA256_BLOCK_SIZE]); + sha256(input, SHA256_BLOCK_SIZE + len, &input[SHA256_BLOCK_SIZE]); /* Prepare second part of hmac */ memset(input, 0x5C, SHA256_BLOCK_SIZE); @@ -82,9 +75,7 @@ void mptcp_crypto_hmac_sha(u64 key1, u64 key2, u8 *msg, int len, void *hmac) for (i = 0; i < 8; i++) input[i + 8] ^= key2be[i]; - sha256_init(&state); - sha256_update(&state, input, SHA256_BLOCK_SIZE + SHA256_DIGEST_SIZE); - sha256_final(&state, (u8 *)hmac); + sha256(input, SHA256_BLOCK_SIZE + SHA256_DIGEST_SIZE, hmac); } #ifdef CONFIG_MPTCP_HMAC_TEST -- 2.27.0
WARNING: multiple messages have this Message-ID (diff)
From: Eric Biggers <ebiggers@kernel.org> To: linux-crypto@vger.kernel.org, Herbert Xu <herbert@gondor.apana.org.au> Cc: mptcp@lists.01.org, Mat Martineau <mathew.j.martineau@linux.intel.com>, Matthieu Baerts <matthieu.baerts@tessares.net>, Ard Biesheuvel <ardb@kernel.org> Subject: [PATCH v2 4/5] mptcp: use sha256() instead of open coding Date: Wed, 8 Jul 2020 09:39:42 -0700 [thread overview] Message-ID: <20200708163943.52071-5-ebiggers@kernel.org> (raw) In-Reply-To: <20200708163943.52071-1-ebiggers@kernel.org> From: Eric Biggers <ebiggers@google.com> Now that there's a function that calculates the SHA-256 digest of a buffer in one step, use it instead of sha256_init() + sha256_update() + sha256_final(). Reviewed-by: Ard Biesheuvel <ardb@kernel.org> Acked-by: Matthieu Baerts <matthieu.baerts@tessares.net> Cc: mptcp@lists.01.org Cc: Mat Martineau <mathew.j.martineau@linux.intel.com> Cc: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Eric Biggers <ebiggers@google.com> --- net/mptcp/crypto.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/net/mptcp/crypto.c b/net/mptcp/crypto.c index 3d980713a9e2..82bd2b54d741 100644 --- a/net/mptcp/crypto.c +++ b/net/mptcp/crypto.c @@ -32,11 +32,8 @@ void mptcp_crypto_key_sha(u64 key, u32 *token, u64 *idsn) { __be32 mptcp_hashed_key[SHA256_DIGEST_WORDS]; __be64 input = cpu_to_be64(key); - struct sha256_state state; - sha256_init(&state); - sha256_update(&state, (__force u8 *)&input, sizeof(input)); - sha256_final(&state, (u8 *)mptcp_hashed_key); + sha256((__force u8 *)&input, sizeof(input), (u8 *)mptcp_hashed_key); if (token) *token = be32_to_cpu(mptcp_hashed_key[0]); @@ -47,7 +44,6 @@ void mptcp_crypto_key_sha(u64 key, u32 *token, u64 *idsn) void mptcp_crypto_hmac_sha(u64 key1, u64 key2, u8 *msg, int len, void *hmac) { u8 input[SHA256_BLOCK_SIZE + SHA256_DIGEST_SIZE]; - struct sha256_state state; u8 key1be[8]; u8 key2be[8]; int i; @@ -67,13 +63,10 @@ void mptcp_crypto_hmac_sha(u64 key1, u64 key2, u8 *msg, int len, void *hmac) memcpy(&input[SHA256_BLOCK_SIZE], msg, len); - sha256_init(&state); - sha256_update(&state, input, SHA256_BLOCK_SIZE + len); - /* emit sha256(K1 || msg) on the second input block, so we can * reuse 'input' for the last hashing */ - sha256_final(&state, &input[SHA256_BLOCK_SIZE]); + sha256(input, SHA256_BLOCK_SIZE + len, &input[SHA256_BLOCK_SIZE]); /* Prepare second part of hmac */ memset(input, 0x5C, SHA256_BLOCK_SIZE); @@ -82,9 +75,7 @@ void mptcp_crypto_hmac_sha(u64 key1, u64 key2, u8 *msg, int len, void *hmac) for (i = 0; i < 8; i++) input[i + 8] ^= key2be[i]; - sha256_init(&state); - sha256_update(&state, input, SHA256_BLOCK_SIZE + SHA256_DIGEST_SIZE); - sha256_final(&state, (u8 *)hmac); + sha256(input, SHA256_BLOCK_SIZE + SHA256_DIGEST_SIZE, hmac); } #ifdef CONFIG_MPTCP_HMAC_TEST -- 2.27.0
next reply other threads:[~2020-07-08 16:39 UTC|newest] Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-08 16:39 Eric Biggers [this message] 2020-07-08 16:39 ` [PATCH v2 4/5] mptcp: use sha256() instead of open coding Eric Biggers -- strict thread matches above, loose matches on Subject: below -- 2020-07-16 11:54 [MPTCP] Re: [PATCH v2 0/5] crypto: add sha256() function Herbert Xu 2020-07-16 11:54 ` Herbert Xu 2020-07-16 11:54 ` Herbert Xu 2020-07-16 11:54 ` Herbert Xu 2020-07-08 16:39 [MPTCP] [PATCH v2 2/5] crypto: lib/sha256 - " Eric Biggers 2020-07-08 16:39 ` Eric Biggers 2020-07-08 16:39 ` Eric Biggers 2020-07-08 16:39 ` Eric Biggers 2020-07-08 16:39 [MPTCP] [PATCH v2 0/5] crypto: " Eric Biggers 2020-07-08 16:39 ` Eric Biggers 2020-07-08 16:39 ` Eric Biggers 2020-07-08 16:39 ` Eric Biggers 2020-07-08 16:39 ` [PATCH v2 1/5] crypto: sparc - rename sha256 to sha256_alg Eric Biggers 2020-07-08 16:39 ` Eric Biggers 2020-07-08 16:39 ` [PATCH v2 3/5] efi: use sha256() instead of open coding Eric Biggers 2020-07-08 16:39 ` [PATCH v2 5/5] ASoC: cros_ec_codec: " Eric Biggers 2020-07-08 16:39 ` Eric Biggers
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200708163943.52071-5-ebiggers@kernel.org \ --to=unknown@example.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.