From 1ea0a91ba8a8593287ec09bd97ae29d32401943d Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Tue, 12 Nov 2024 19:25:22 +0100 Subject: [PATCH] Fix initialization when initializing a RP2350 board for first time. Fixes #60. Signed-off-by: Pol Henarejos --- src/hsm/cmd_initialize.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/hsm/cmd_initialize.c b/src/hsm/cmd_initialize.c index eb61418..5137da7 100644 --- a/src/hsm/cmd_initialize.c +++ b/src/hsm/cmd_initialize.c @@ -15,8 +15,8 @@ * along with this program. If not, see . */ -#include "crypto_utils.h" #include "sc_hsm.h" +#include "crypto_utils.h" #include "files.h" #include "random.h" #include "kek.h" @@ -187,6 +187,11 @@ int cmd_initialize() { uint8_t key_id = 0; if (otp_key_2) { ret = mbedtls_ecp_read_key(MBEDTLS_ECP_DP_SECP256K1, &ecdsa, otp_key_2, 32); + if (ret != 0) { + mbedtls_ecdsa_free(&ecdsa); + return SW_EXEC_ERROR(); + } + ret = mbedtls_ecp_mul(&ecdsa.grp, &ecdsa.Q, &ecdsa.d, &ecdsa.grp.G, random_gen, NULL); } else { ret = mbedtls_ecdsa_genkey(&ecdsa, ec_id, random_gen, NULL);