pem: reject empty PEM contents
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
This commit is contained in:
parent
d8840ec6e5
commit
0f286d5453
2 changed files with 9 additions and 0 deletions
|
@ -244,6 +244,7 @@ exit:
|
||||||
#if defined(MBEDTLS_DES_C) || defined(MBEDTLS_AES_C)
|
#if defined(MBEDTLS_DES_C) || defined(MBEDTLS_AES_C)
|
||||||
static int pem_check_pkcs_padding(unsigned char *input, size_t input_len, size_t *data_len)
|
static int pem_check_pkcs_padding(unsigned char *input, size_t input_len, size_t *data_len)
|
||||||
{
|
{
|
||||||
|
/* input_len > 0 is guaranteed by mbedtls_pem_read_buffer(). */
|
||||||
size_t pad_len = input[input_len - 1];
|
size_t pad_len = input[input_len - 1];
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
|
@ -412,6 +413,10 @@ int mbedtls_pem_read_buffer(mbedtls_pem_context *ctx, const char *header, const
|
||||||
return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PEM_INVALID_DATA, ret);
|
return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PEM_INVALID_DATA, ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (len == 0) {
|
||||||
|
return MBEDTLS_ERR_PEM_BAD_INPUT_DATA;
|
||||||
|
}
|
||||||
|
|
||||||
if ((buf = mbedtls_calloc(1, len)) == NULL) {
|
if ((buf = mbedtls_calloc(1, len)) == NULL) {
|
||||||
return MBEDTLS_ERR_PEM_ALLOC_FAILED;
|
return MBEDTLS_ERR_PEM_ALLOC_FAILED;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,10 @@ mbedtls_pem_write_buffer_lengths
|
||||||
PEM read (unencrypted, valid)
|
PEM read (unencrypted, valid)
|
||||||
mbedtls_pem_read_buffer:"^":"$":"^\nTWJlZCBUTFM=\n$":"":0:"4d62656420544c53"
|
mbedtls_pem_read_buffer:"^":"$":"^\nTWJlZCBUTFM=\n$":"":0:"4d62656420544c53"
|
||||||
|
|
||||||
|
PEM read (unencrypted, empty content)
|
||||||
|
depends_on:MBEDTLS_MD_CAN_MD5:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||||
|
mbedtls_pem_read_buffer:"-----BEGIN EC PRIVATE KEY-----":"-----END EC PRIVATE KEY-----":"-----BEGIN EC PRIVATE KEY-----\n\n-----END EC PRIVATE KEY-----":"":MBEDTLS_ERR_PEM_BAD_INPUT_DATA:""
|
||||||
|
|
||||||
PEM read (DES-EDE3-CBC + invalid iv)
|
PEM read (DES-EDE3-CBC + invalid iv)
|
||||||
depends_on:MBEDTLS_MD_CAN_MD5:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_DES_C
|
depends_on:MBEDTLS_MD_CAN_MD5:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_DES_C
|
||||||
mbedtls_pem_read_buffer:"^":"$":"^\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: DES-EDE3-CBC,00$":"pwd":MBEDTLS_ERR_PEM_INVALID_ENC_IV:""
|
mbedtls_pem_read_buffer:"^":"$":"^\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: DES-EDE3-CBC,00$":"pwd":MBEDTLS_ERR_PEM_INVALID_ENC_IV:""
|
||||||
|
|
Loading…
Reference in a new issue