diff --git a/ChangeLog.d/pkparse-pkcs8-unencrypted-no-alloc.txt b/ChangeLog.d/pkparse-pkcs8-unencrypted-no-alloc.txt new file mode 100644 index 000000000..9d7a32ea0 --- /dev/null +++ b/ChangeLog.d/pkparse-pkcs8-unencrypted-no-alloc.txt @@ -0,0 +1,3 @@ +Changes + * In mbedtls_pk_parse_key(), if no password is provided, don't allocate a + temporary variable on the heap. Suggested by Sergey Kanatov in #5304. diff --git a/library/pkparse.c b/library/pkparse.c index b2d3bb074..22dab3ad7 100644 --- a/library/pkparse.c +++ b/library/pkparse.c @@ -1343,6 +1343,7 @@ int mbedtls_pk_parse_key( mbedtls_pk_context *pk, * error */ #if defined(MBEDTLS_PKCS12_C) || defined(MBEDTLS_PKCS5_C) + if( pwdlen != 0 ) { unsigned char *key_copy;