mirror of
https://github.com/torvalds/linux.git
synced 2026-11-09 13:44:03 +01:00
crypto: ccree - use crypto_memneq() to compare AEAD tag
cc_aead_complete() compares the computed MAC against the received ICV with memcmp(), which short-circuits on the first differing byte and leaks tag-match length via timing. Use crypto_memneq() instead. Assisted-by: gregkh_clanker_t1000 Signed-off-by: David C.C.M. Gall <david.ccm.gall@googlemail.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
caad4d7cbc
commit
97e5869514
|
|
@ -226,8 +226,8 @@ static void cc_aead_complete(struct device *dev, void *cc_req, int err)
|
|||
goto done;
|
||||
|
||||
if (areq_ctx->gen_ctx.op_type == DRV_CRYPTO_DIRECTION_DECRYPT) {
|
||||
if (memcmp(areq_ctx->mac_buf, areq_ctx->icv_virt_addr,
|
||||
ctx->authsize) != 0) {
|
||||
if (crypto_memneq(areq_ctx->mac_buf, areq_ctx->icv_virt_addr,
|
||||
ctx->authsize)) {
|
||||
dev_dbg(dev, "Payload authentication failure, (auth-size=%d, cipher=%d)\n",
|
||||
ctx->authsize, ctx->cipher_mode);
|
||||
/* In case of payload authentication failure, MUST NOT
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user