crypto: stm32/crc32 - fix run-time self test issue.
authorNicolas Toromanoff <nicolas.toromanoff@st.com>
Tue, 12 May 2020 14:11:10 +0000 (16:11 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 22 May 2020 14:08:20 +0000 (00:08 +1000)
Fix wrong crc32 initialisation value:
"alg: shash: stm32_crc32 test failed (wrong result) on test vector 0,
cfg="init+update+final aligned buffer"
cra_name="crc32c" expects an init value of 0XFFFFFFFF,
cra_name="crc32" expects an init value of 0.

Fixes: b51dbe90912a ("crypto: stm32 - Support for STM32 CRC32 crypto module")
Signed-off-by: Nicolas Toromanoff <nicolas.toromanoff@st.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/stm32/stm32-crc32.c

index c6156bf6c603d3de31966d9496000282685d3769..1c3e411b7acb1a120e266ef771e3fcc42df02897 100644 (file)
 
 /* Registers values */
 #define CRC_CR_RESET            BIT(0)
-#define CRC_INIT_DEFAULT        0xFFFFFFFF
 #define CRC_CR_REV_IN_WORD      (BIT(6) | BIT(5))
 #define CRC_CR_REV_IN_BYTE      BIT(5)
 #define CRC_CR_REV_OUT          BIT(7)
+#define CRC32C_INIT_DEFAULT     0xFFFFFFFF
 
 #define CRC_AUTOSUSPEND_DELAY  50
 
@@ -65,7 +65,7 @@ static int stm32_crc32_cra_init(struct crypto_tfm *tfm)
 {
        struct stm32_crc_ctx *mctx = crypto_tfm_ctx(tfm);
 
-       mctx->key = CRC_INIT_DEFAULT;
+       mctx->key = 0;
        mctx->poly = CRC32_POLY_LE;
        return 0;
 }
@@ -74,7 +74,7 @@ static int stm32_crc32c_cra_init(struct crypto_tfm *tfm)
 {
        struct stm32_crc_ctx *mctx = crypto_tfm_ctx(tfm);
 
-       mctx->key = CRC_INIT_DEFAULT;
+       mctx->key = CRC32C_INIT_DEFAULT;
        mctx->poly = CRC32C_POLY_LE;
        return 0;
 }