mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-03-22 04:20:59 +00:00
Move mbedtls_oid_get_numeric_string unit tests to test_suite_x509parse
This commit moves all related mbedtls_oid_get_numeric_string unit tests from test_suite_oid to test_suite_x509parse. Signed-off-by: Sam Berry <sam.berry@arm.com>
This commit is contained in:
parent
4f76194eaf
commit
4aee6a25ca
@ -3439,3 +3439,52 @@ x509_crt_parse_authoritykeyid:"../framework/data_files/authorityKeyId_subjectKey
|
||||
X509 CRT parse Authority Key Id - Wrong Issuer sequence
|
||||
depends_on:PSA_WANT_ALG_MD5:MBEDTLS_RSA_C
|
||||
x509_crt_parse_authoritykeyid:"../framework/data_files/clusterfuzz-testcase-minimized-fuzz_x509crt-6666050834661376.crt.der":"":"":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
OID get numeric string - hardware module name
|
||||
oid_get_numeric_string:"2B06010505070804":0:"1.3.6.1.5.5.7.8.4"
|
||||
|
||||
OID get numeric string - multi-byte subidentifier
|
||||
oid_get_numeric_string:"29903C":0:"1.1.2108"
|
||||
|
||||
OID get numeric string - second component greater than 39
|
||||
oid_get_numeric_string:"81010000863A00":0:"2.49.0.0.826.0"
|
||||
|
||||
OID get numeric string - multi-byte first subidentifier
|
||||
oid_get_numeric_string:"8837":0:"2.999"
|
||||
|
||||
OID get numeric string - second subidentifier not terminated
|
||||
oid_get_numeric_string:"0081":MBEDTLS_ERR_ASN1_OUT_OF_DATA:""
|
||||
|
||||
OID get numeric string - empty oid buffer
|
||||
oid_get_numeric_string:"":MBEDTLS_ERR_ASN1_OUT_OF_DATA:""
|
||||
|
||||
OID get numeric string - no final / all bytes have top bit set
|
||||
oid_get_numeric_string:"818181":MBEDTLS_ERR_ASN1_OUT_OF_DATA:""
|
||||
|
||||
OID get numeric string - 0.39
|
||||
oid_get_numeric_string:"27":0:"0.39"
|
||||
|
||||
OID get numeric string - 1.0
|
||||
oid_get_numeric_string:"28":0:"1.0"
|
||||
|
||||
OID get numeric string - 1.39
|
||||
oid_get_numeric_string:"4f":0:"1.39"
|
||||
|
||||
OID get numeric string - 2.0
|
||||
oid_get_numeric_string:"50":0:"2.0"
|
||||
|
||||
OID get numeric string - 1 byte first subidentifier beyond 2.39
|
||||
oid_get_numeric_string:"7f":0:"2.47"
|
||||
|
||||
# Encodes the number 0x0400000000 as a subidentifier which overflows 32-bits
|
||||
OID get numeric string - 32-bit overflow
|
||||
oid_get_numeric_string:"C080808000":MBEDTLS_ERR_ASN1_INVALID_DATA:""
|
||||
|
||||
OID get numeric string - 32-bit overflow, second subidentifier
|
||||
oid_get_numeric_string:"2BC080808000":MBEDTLS_ERR_ASN1_INVALID_DATA:""
|
||||
|
||||
OID get numeric string - overlong encoding
|
||||
oid_get_numeric_string:"8001":MBEDTLS_ERR_ASN1_INVALID_DATA:""
|
||||
|
||||
OID get numeric string - overlong encoding, second subidentifier
|
||||
oid_get_numeric_string:"2B8001":MBEDTLS_ERR_ASN1_INVALID_DATA:""
|
||||
|
@ -10,6 +10,8 @@
|
||||
#include "mbedtls/base64.h"
|
||||
#include "mbedtls/error.h"
|
||||
#include "mbedtls/pk.h"
|
||||
#include "mbedtls/asn1.h"
|
||||
#include "mbedtls/asn1write.h"
|
||||
#include "string.h"
|
||||
|
||||
#if MBEDTLS_X509_MAX_INTERMEDIATE_CA > 19
|
||||
@ -1747,3 +1749,27 @@ exit:
|
||||
mbedtls_x509_crt_free(&crt);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_x509_USE_C */
|
||||
void oid_get_numeric_string(data_t *oid, int error_ret, char *result_str)
|
||||
{
|
||||
char buf[256];
|
||||
mbedtls_asn1_buf input_oid = { 0, 0, NULL };
|
||||
int ret;
|
||||
|
||||
input_oid.tag = MBEDTLS_ASN1_OID;
|
||||
/* Test that an empty OID is not dereferenced */
|
||||
input_oid.p = oid->len ? oid->x : (void *) 1;
|
||||
input_oid.len = oid->len;
|
||||
|
||||
ret = mbedtls_oid_get_numeric_string(buf, sizeof(buf), &input_oid);
|
||||
|
||||
if (error_ret == 0) {
|
||||
TEST_EQUAL(ret, strlen(result_str));
|
||||
TEST_ASSERT(ret >= 3);
|
||||
TEST_EQUAL(strcmp(buf, result_str), 0);
|
||||
} else {
|
||||
TEST_EQUAL(ret, error_ret);
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
@ -105,55 +105,6 @@ oid_get_md_alg_id:"2b24030201":MBEDTLS_MD_RIPEMD160
|
||||
OID hash id - invalid oid
|
||||
oid_get_md_alg_id:"2B864886f70d0204":-1
|
||||
|
||||
OID get numeric string - hardware module name
|
||||
oid_get_numeric_string:"2B06010505070804":0:"1.3.6.1.5.5.7.8.4"
|
||||
|
||||
OID get numeric string - multi-byte subidentifier
|
||||
oid_get_numeric_string:"29903C":0:"1.1.2108"
|
||||
|
||||
OID get numeric string - second component greater than 39
|
||||
oid_get_numeric_string:"81010000863A00":0:"2.49.0.0.826.0"
|
||||
|
||||
OID get numeric string - multi-byte first subidentifier
|
||||
oid_get_numeric_string:"8837":0:"2.999"
|
||||
|
||||
OID get numeric string - second subidentifier not terminated
|
||||
oid_get_numeric_string:"0081":MBEDTLS_ERR_ASN1_OUT_OF_DATA:""
|
||||
|
||||
OID get numeric string - empty oid buffer
|
||||
oid_get_numeric_string:"":MBEDTLS_ERR_ASN1_OUT_OF_DATA:""
|
||||
|
||||
OID get numeric string - no final / all bytes have top bit set
|
||||
oid_get_numeric_string:"818181":MBEDTLS_ERR_ASN1_OUT_OF_DATA:""
|
||||
|
||||
OID get numeric string - 0.39
|
||||
oid_get_numeric_string:"27":0:"0.39"
|
||||
|
||||
OID get numeric string - 1.0
|
||||
oid_get_numeric_string:"28":0:"1.0"
|
||||
|
||||
OID get numeric string - 1.39
|
||||
oid_get_numeric_string:"4f":0:"1.39"
|
||||
|
||||
OID get numeric string - 2.0
|
||||
oid_get_numeric_string:"50":0:"2.0"
|
||||
|
||||
OID get numeric string - 1 byte first subidentifier beyond 2.39
|
||||
oid_get_numeric_string:"7f":0:"2.47"
|
||||
|
||||
# Encodes the number 0x0400000000 as a subidentifier which overflows 32-bits
|
||||
OID get numeric string - 32-bit overflow
|
||||
oid_get_numeric_string:"C080808000":MBEDTLS_ERR_ASN1_INVALID_DATA:""
|
||||
|
||||
OID get numeric string - 32-bit overflow, second subidentifier
|
||||
oid_get_numeric_string:"2BC080808000":MBEDTLS_ERR_ASN1_INVALID_DATA:""
|
||||
|
||||
OID get numeric string - overlong encoding
|
||||
oid_get_numeric_string:"8001":MBEDTLS_ERR_ASN1_INVALID_DATA:""
|
||||
|
||||
OID get numeric string - overlong encoding, second subidentifier
|
||||
oid_get_numeric_string:"2B8001":MBEDTLS_ERR_ASN1_INVALID_DATA:""
|
||||
|
||||
OID from numeric string - hardware module name
|
||||
oid_from_numeric_string:"1.3.6.1.5.5.7.8.4":0:"2B06010505070804"
|
||||
|
||||
|
@ -119,30 +119,6 @@ void mbedtls_oid_get_md_hmac(data_t *oid, int exp_md_id)
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void oid_get_numeric_string(data_t *oid, int error_ret, char *result_str)
|
||||
{
|
||||
char buf[256];
|
||||
mbedtls_asn1_buf input_oid = { 0, 0, NULL };
|
||||
int ret;
|
||||
|
||||
input_oid.tag = MBEDTLS_ASN1_OID;
|
||||
/* Test that an empty OID is not dereferenced */
|
||||
input_oid.p = oid->len ? oid->x : (void *) 1;
|
||||
input_oid.len = oid->len;
|
||||
|
||||
ret = mbedtls_oid_get_numeric_string(buf, sizeof(buf), &input_oid);
|
||||
|
||||
if (error_ret == 0) {
|
||||
TEST_EQUAL(ret, strlen(result_str));
|
||||
TEST_ASSERT(ret >= 3);
|
||||
TEST_EQUAL(strcmp(buf, result_str), 0);
|
||||
} else {
|
||||
TEST_EQUAL(ret, error_ret);
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void oid_from_numeric_string(char *oid_str, int error_ret,
|
||||
data_t *exp_oid_buf)
|
||||
|
Loading…
x
Reference in New Issue
Block a user