mbedtls_pk_parse_key: don't allocate if not needed
mbedtls_pk_parse_key() makes a temporary copy of the key when it calls pk_parse_key_pkcs8_encrypted_der(), because that function requires a writable buffer. pk_parse_key_pkcs8_encrypted_der() always rejects an empty password, so skip calling it in that case, which allows us to skip the allocation as well. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
parent
d5b2a59826
commit
0ca219575a
3
ChangeLog.d/pkparse-pkcs8-unencrypted-no-alloc.txt
Normal file
3
ChangeLog.d/pkparse-pkcs8-unencrypted-no-alloc.txt
Normal file
@ -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.
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user