mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
crypto: atmel-ecc - reject hardware ECDH without a public key
The hardware ECDH path in atmel_ecdh_compute_shared_secret() uses the
private key stored in the device. However, the public key is cached only
after atmel_ecdh_set_secret() successfully generated that private key
for the current tfm.
atmel_ecdh_generate_public_key() already rejects requests when no public
key is cached. Add the same check to atmel_ecdh_compute_shared_secret()
to prevent the device from using a private key that was not generated
for the current tfm.
Fixes: 11105693fa ("crypto: atmel-ecc - introduce Microchip / Atmel ECC driver")
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
f964df8a12
commit
f240f9b588
|
|
@ -163,6 +163,9 @@ static int atmel_ecdh_compute_shared_secret(struct kpp_request *req)
|
|||
return crypto_kpp_compute_shared_secret(req);
|
||||
}
|
||||
|
||||
if (!ctx->public_key)
|
||||
return -EINVAL;
|
||||
|
||||
/* A P-256 public key must contain two 32-byte coordinates */
|
||||
if (req->src_len != ATMEL_ECC_PUBKEY_SIZE)
|
||||
return -EINVAL;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user