Fix support for ECDSA and ECDSA-SHAx signatures.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
Pol Henarejos 2022-03-16 18:20:17 +01:00
parent 693c890663
commit 8988d1cf15
No known key found for this signature in database
GPG key ID: C0095B7870A4CCD3

View file

@ -1403,6 +1403,7 @@ static int cmd_signature() {
else if (p2 == ALGO_EC_RAW || p2 == ALGO_EC_SHA1 || p2 == ALGO_EC_SHA224 || p2 == ALGO_EC_SHA256) {
mbedtls_ecdsa_context ctx;
mbedtls_ecdsa_init(&ctx);
md = MBEDTLS_MD_SHA256;
if (p2 == ALGO_EC_RAW) {
if (apdu.cmd_apdu_data_len == 32)
md = MBEDTLS_MD_SHA256;
@ -1415,6 +1416,12 @@ static int cmd_signature() {
else if (apdu.cmd_apdu_data_len == 64)
md = MBEDTLS_MD_SHA512;
}
if (p2 == ALGO_EC_SHA1)
md = MBEDTLS_MD_SHA1;
else if (p2 == ALGO_EC_SHA224)
md = MBEDTLS_MD_SHA224;
else if (p2 == ALGO_EC_SHA256)
md = MBEDTLS_MD_SHA256;
int r;
r = load_private_key_ecdsa(&ctx, fkey);
if (r != HSM_OK)