Merge pull request #8688 from jwinzig-at-hilscher/development
Fix bug in mbedtls_x509_set_extension
This commit is contained in:
commit
f149cd1a3a
3 changed files with 28 additions and 0 deletions
|
@ -382,6 +382,10 @@ int mbedtls_x509_set_extension(mbedtls_asn1_named_data **head, const char *oid,
|
|||
{
|
||||
mbedtls_asn1_named_data *cur;
|
||||
|
||||
if (val_len > (SIZE_MAX - 1)) {
|
||||
return MBEDTLS_ERR_X509_BAD_INPUT_DATA;
|
||||
}
|
||||
|
||||
if ((cur = mbedtls_asn1_store_named_data(head, oid, oid_len,
|
||||
NULL, val_len + 1)) == NULL) {
|
||||
return MBEDTLS_ERR_X509_ALLOC_FAILED;
|
||||
|
|
|
@ -265,3 +265,6 @@ mbedtls_x509_string_to_names:"C=NL, 2.5.4.10.234.532=#0C084F6666737061726B, OU=P
|
|||
|
||||
Check max serial length
|
||||
x509_set_serial_check:
|
||||
|
||||
Check max extension length
|
||||
x509_set_extension_length_check:
|
||||
|
|
|
@ -752,3 +752,24 @@ exit:
|
|||
USE_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_X509_CSR_WRITE_C */
|
||||
void x509_set_extension_length_check()
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
mbedtls_x509write_csr ctx;
|
||||
mbedtls_x509write_csr_init(&ctx);
|
||||
|
||||
unsigned char buf[EXT_KEY_USAGE_TMP_BUF_MAX_LENGTH] = { 0 };
|
||||
unsigned char *p = buf + sizeof(buf);
|
||||
|
||||
ret = mbedtls_x509_set_extension(&(ctx.MBEDTLS_PRIVATE(extensions)),
|
||||
MBEDTLS_OID_EXTENDED_KEY_USAGE,
|
||||
MBEDTLS_OID_SIZE(MBEDTLS_OID_EXTENDED_KEY_USAGE),
|
||||
0,
|
||||
p,
|
||||
SIZE_MAX);
|
||||
TEST_ASSERT(MBEDTLS_ERR_X509_BAD_INPUT_DATA == ret);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue