From 1d3232df36a990ea72d3ad817a95775feff43ade Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Thu, 24 Aug 2023 16:01:39 +0200 Subject: [PATCH] Fix loading and saving Montgomery keys. Signed-off-by: Pol Henarejos --- src/hsm/cmd_decrypt_asym.c | 2 +- src/hsm/sc_hsm.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hsm/cmd_decrypt_asym.c b/src/hsm/cmd_decrypt_asym.c index 749e925..72681c7 100644 --- a/src/hsm/cmd_decrypt_asym.c +++ b/src/hsm/cmd_decrypt_asym.c @@ -102,7 +102,7 @@ int cmd_decrypt_asym() { free(kdata); return SW_DATA_INVALID(); } - r = mbedtls_mpi_read_binary(&ctx.ctx.mbed_ecdh.d, kdata + 1, key_size - 1); + r = mbedtls_ecp_read_key(gid, (mbedtls_ecdsa_context *)&ctx.ctx.mbed_ecdh, kdata + 1, key_size - 1); mbedtls_platform_zeroize(kdata, key_size); free(kdata); if (r != 0) { diff --git a/src/hsm/sc_hsm.c b/src/hsm/sc_hsm.c index b0751cd..41b2dcd 100644 --- a/src/hsm/sc_hsm.c +++ b/src/hsm/sc_hsm.c @@ -502,7 +502,7 @@ int store_keys(void *key_ctx, int type, uint8_t key_id) { mbedtls_ecdsa_context *ecdsa = (mbedtls_ecdsa_context *) key_ctx; key_size = mbedtls_mpi_size(&ecdsa->d); kdata[0] = ecdsa->grp.id & 0xff; - mbedtls_mpi_write_binary(&ecdsa->d, kdata + 1, key_size); + mbedtls_ecp_write_key(ecdsa, kdata + 1, key_size); key_size++; } else if (type & HSM_KEY_AES) {