mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 15:22:21 -04:00
crypto: keembay - use crypto_memneq() to compare CCM AEAD tags
Use crypto_memneq() for constant-time comparison. The CCM path in ocs-aes.c verifes the received authentication tag with memcmp(), which returns early on the first mismatched byte. This leaks valid-prefix length and allows for valid tag forgery which violates the INT-CTXT guarantee of AEAD. 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:
committed by
Herbert Xu
parent
353b3a8513
commit
ff2ac77a03
@@ -17,6 +17,7 @@
|
||||
|
||||
#include <crypto/aes.h>
|
||||
#include <crypto/gcm.h>
|
||||
#include <crypto/utils.h>
|
||||
|
||||
#include "ocs-aes.h"
|
||||
|
||||
@@ -1283,7 +1284,7 @@ static inline int ccm_compare_tag_to_yr(struct ocs_aes_dev *aes_dev,
|
||||
(i * sizeof(u32)));
|
||||
}
|
||||
|
||||
return memcmp(tag, yr, tag_size_bytes) ? -EBADMSG : 0;
|
||||
return crypto_memneq(tag, yr, tag_size_bytes) ? -EBADMSG : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user