OSDN Git Service

mptcp: use sha256() instead of open coding
authorEric Biggers <ebiggers@google.com>
Wed, 8 Jul 2020 16:39:42 +0000 (09:39 -0700)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 16 Jul 2020 11:49:05 +0000 (21:49 +1000)
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>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
net/mptcp/crypto.c

index 3d98071..82bd2b5 100644 (file)
@@ -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