mirror of
https://github.com/torvalds/linux.git
synced 2026-01-12 00:42:35 +08:00
thunderbolt: Compare HMAC values in constant time
To prevent timing attacks, HMAC value comparison needs to be constant
time. Replace the memcmp() with the correct function, crypto_memneq().
Fixes: f67cf49117 ("thunderbolt: Add support for Internal Connection Manager (ICM)")
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
This commit is contained in:
committed by
Mika Westerberg
parent
8f5ae30d69
commit
dced755df3
@@ -13,6 +13,7 @@
|
||||
#include <linux/slab.h>
|
||||
#include <linux/random.h>
|
||||
#include <crypto/hash.h>
|
||||
#include <crypto/utils.h>
|
||||
|
||||
#include "tb.h"
|
||||
|
||||
@@ -748,7 +749,7 @@ int tb_domain_challenge_switch_key(struct tb *tb, struct tb_switch *sw)
|
||||
goto err_free_shash;
|
||||
|
||||
/* The returned HMAC must match the one we calculated */
|
||||
if (memcmp(response, hmac, sizeof(hmac))) {
|
||||
if (crypto_memneq(response, hmac, sizeof(hmac))) {
|
||||
ret = -EKEYREJECTED;
|
||||
goto err_free_shash;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user