diff --git a/src/hsm/sc_hsm.c b/src/hsm/sc_hsm.c index 69d7a3e..66daccb 100644 --- a/src/hsm/sc_hsm.c +++ b/src/hsm/sc_hsm.c @@ -513,9 +513,10 @@ int store_keys(void *key_ctx, int type, uint8_t key_id) { } else if (type & PICO_KEYS_KEY_EC) { mbedtls_ecdsa_context *ecdsa = (mbedtls_ecdsa_context *) key_ctx; + size_t olen = 0; kdata[0] = ecdsa->grp.id & 0xff; - mbedtls_ecp_write_key_ext(ecdsa, (size_t *)&key_size, kdata + 1, sizeof(kdata) - 1); - key_size++; + mbedtls_ecp_write_key_ext(ecdsa, &olen, kdata + 1, sizeof(kdata) - 1); + key_size = olen + 1; } else if (type & PICO_KEYS_KEY_AES) { if (type == PICO_KEYS_KEY_AES_128) {