crypto: stm32/cryp - add weak key check for DES
Add weak key test for des functions calling the generic des_ekey. Signed-off-by: Lionel Debieve <lionel.debieve@st.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
6bbc3936a4
commit
7ee27f5a3f
|
@ -24,6 +24,7 @@ config CRYPTO_DEV_STM32_CRYP
|
||||||
depends on ARCH_STM32
|
depends on ARCH_STM32
|
||||||
select CRYPTO_HASH
|
select CRYPTO_HASH
|
||||||
select CRYPTO_ENGINE
|
select CRYPTO_ENGINE
|
||||||
|
select CRYPTO_DES
|
||||||
help
|
help
|
||||||
This enables support for the CRYP (AES/DES/TDES) hw accelerator which
|
This enables support for the CRYP (AES/DES/TDES) hw accelerator which
|
||||||
can be found on STMicroelectronics STM32 SOC.
|
can be found on STMicroelectronics STM32 SOC.
|
||||||
|
|
|
@ -753,9 +753,18 @@ static int stm32_cryp_aes_setkey(struct crypto_ablkcipher *tfm, const u8 *key,
|
||||||
static int stm32_cryp_des_setkey(struct crypto_ablkcipher *tfm, const u8 *key,
|
static int stm32_cryp_des_setkey(struct crypto_ablkcipher *tfm, const u8 *key,
|
||||||
unsigned int keylen)
|
unsigned int keylen)
|
||||||
{
|
{
|
||||||
|
u32 tmp[DES_EXPKEY_WORDS];
|
||||||
|
|
||||||
if (keylen != DES_KEY_SIZE)
|
if (keylen != DES_KEY_SIZE)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
else
|
|
||||||
|
if ((crypto_ablkcipher_get_flags(tfm) &
|
||||||
|
CRYPTO_TFM_REQ_FORBID_WEAK_KEYS) &&
|
||||||
|
unlikely(!des_ekey(tmp, key))) {
|
||||||
|
crypto_ablkcipher_set_flags(tfm, CRYPTO_TFM_RES_WEAK_KEY);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
return stm32_cryp_setkey(tfm, key, keylen);
|
return stm32_cryp_setkey(tfm, key, keylen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue