OSDN Git Service

crypto: stm32/hash - Fix hmac issue more than 256 bytes
authorLionel Debieve <lionel.debieve@st.com>
Fri, 28 Jun 2019 11:26:54 +0000 (13:26 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2019 08:21:34 +0000 (09:21 +0100)
commit 0acabecebc912b3ba06289e4ef40476acc499a37 upstream.

Correct condition for the second hmac loop. Key must be only
set in the first loop. Initial condition was wrong,
HMAC_KEY flag was not properly checked.

Signed-off-by: Lionel Debieve <lionel.debieve@st.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/crypto/stm32/stm32-hash.c

index 590d735..641b110 100644 (file)
@@ -365,7 +365,7 @@ static int stm32_hash_xmit_cpu(struct stm32_hash_dev *hdev,
                return -ETIMEDOUT;
 
        if ((hdev->flags & HASH_FLAGS_HMAC) &&
-           (hdev->flags & ~HASH_FLAGS_HMAC_KEY)) {
+           (!(hdev->flags & HASH_FLAGS_HMAC_KEY))) {
                hdev->flags |= HASH_FLAGS_HMAC_KEY;
                stm32_hash_write_key(hdev);
                if (stm32_hash_wait_busy(hdev))