crypto: inside-secure - fix invalidation check in hmac_sha1_setkey
The safexcel_hmac_sha1_setkey function checks if an invalidation command
should be issued, i.e. when the context ipad/opad change. This checks is
done after filling the ipad/opad which and it can't be true. The patch
fixes this by moving the check before the ipad/opad memcpy operations.
Fixes: 1b44c5a60c
("crypto: inside-secure - add SafeXcel EIP197 crypto engine driver")
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
41cdf7a453
commit
42ef3bedf3
|
@ -883,9 +883,6 @@ static int safexcel_hmac_sha1_setkey(struct crypto_ahash *tfm, const u8 *key,
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
memcpy(ctx->ipad, &istate.state, SHA1_DIGEST_SIZE);
|
||||
memcpy(ctx->opad, &ostate.state, SHA1_DIGEST_SIZE);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(istate.state); i++) {
|
||||
if (ctx->ipad[i] != le32_to_cpu(istate.state[i]) ||
|
||||
ctx->opad[i] != le32_to_cpu(ostate.state[i])) {
|
||||
|
@ -894,6 +891,9 @@ static int safexcel_hmac_sha1_setkey(struct crypto_ahash *tfm, const u8 *key,
|
|||
}
|
||||
}
|
||||
|
||||
memcpy(ctx->ipad, &istate.state, SHA1_DIGEST_SIZE);
|
||||
memcpy(ctx->opad, &ostate.state, SHA1_DIGEST_SIZE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue