mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2026-03-31 09:31:07 +02:00
PK: fix stack buffer size for ECC keys
This fixes 2 out of the 3 tests cases that were failing in test_suite_pk. The last failure will be adressed in the next commit. Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
This commit is contained in:
10
library/pk.c
10
library/pk.c
@@ -43,6 +43,12 @@
|
||||
#include "mbedtls/platform.h" // for calloc/free
|
||||
#endif
|
||||
|
||||
/* We know for ECC, pubkey are longer than privkeys, but double check */
|
||||
#define PK_MAX_EC_KEYPAIR_OR_PUBKEY_LENGTH MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH
|
||||
#if MBEDTLS_PSA_MAX_EC_KEY_PAIR_LENGTH > PK_MAX_EC_KEYPAIR_OR_PUBKEY_LENGTH
|
||||
#undef PK_MAX_EC_KEYPAIR_OR_PUBKEY_LENGTH
|
||||
#define PK_MAX_EC_KEYPAIR_OR_PUBKEY_LENGTH MBEDTLS_PSA_MAX_EC_KEY_PAIR_LENGTH
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Initialise a mbedtls_pk_context
|
||||
@@ -633,7 +639,7 @@ static psa_status_t export_import_into_psa(mbedtls_svc_key_id_t old_key_id,
|
||||
unsigned char *key_buffer = NULL;
|
||||
size_t key_buffer_size = 0;
|
||||
#else
|
||||
unsigned char key_buffer[MBEDTLS_PSA_MAX_EC_KEY_PAIR_LENGTH];
|
||||
unsigned char key_buffer[PK_MAX_EC_KEYPAIR_OR_PUBKEY_LENGTH];
|
||||
const size_t key_buffer_size = sizeof(key_buffer);
|
||||
#endif
|
||||
size_t key_length = 0;
|
||||
@@ -934,7 +940,7 @@ static int copy_from_psa(mbedtls_svc_key_id_t key_id,
|
||||
unsigned char *exp_key = NULL;
|
||||
size_t exp_key_size = 0;
|
||||
#else
|
||||
unsigned char exp_key[MBEDTLS_PSA_MAX_EC_KEY_PAIR_LENGTH];
|
||||
unsigned char exp_key[PK_MAX_EC_KEYPAIR_OR_PUBKEY_LENGTH];
|
||||
const size_t exp_key_size = sizeof(exp_key);
|
||||
#endif
|
||||
size_t exp_key_len;
|
||||
|
||||
Reference in New Issue
Block a user