mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-03-24 19:43:32 +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
|
X509 CRT parse Authority Key Id - Wrong Issuer sequence
|
||||||
depends_on:PSA_WANT_ALG_MD5:MBEDTLS_RSA_C
|
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
|
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/base64.h"
|
||||||
#include "mbedtls/error.h"
|
#include "mbedtls/error.h"
|
||||||
#include "mbedtls/pk.h"
|
#include "mbedtls/pk.h"
|
||||||
|
#include "mbedtls/asn1.h"
|
||||||
|
#include "mbedtls/asn1write.h"
|
||||||
#include "string.h"
|
#include "string.h"
|
||||||
|
|
||||||
#if MBEDTLS_X509_MAX_INTERMEDIATE_CA > 19
|
#if MBEDTLS_X509_MAX_INTERMEDIATE_CA > 19
|
||||||
@ -1747,3 +1749,27 @@ exit:
|
|||||||
mbedtls_x509_crt_free(&crt);
|
mbedtls_x509_crt_free(&crt);
|
||||||
}
|
}
|
||||||
/* END_CASE */
|
/* 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 hash id - invalid oid
|
||||||
oid_get_md_alg_id:"2B864886f70d0204":-1
|
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 - hardware module name
|
||||||
oid_from_numeric_string:"1.3.6.1.5.5.7.8.4":0:"2B06010505070804"
|
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 */
|
/* 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 */
|
/* BEGIN_CASE */
|
||||||
void oid_from_numeric_string(char *oid_str, int error_ret,
|
void oid_from_numeric_string(char *oid_str, int error_ret,
|
||||||
data_t *exp_oid_buf)
|
data_t *exp_oid_buf)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user