From 2bb3f4d6d4b1f181805692f8c0ca9f304a2a5705 Mon Sep 17 00:00:00 2001 From: Sam Berry Date: Fri, 19 Jul 2024 15:14:27 +0100 Subject: [PATCH] Move mbedtls_oid_from_numeric_string unit tests to test_suite_x509write This commit moves all related mbedtls_oid_from_numeric_string unit tests from test_suite_oid to test_suite_x509write. Signed-off-by: Sam Berry --- tests/suites/test_suite_x509write.data | 49 +++++++++++++++++++ tests/suites/test_suite_x509write.function | 27 ++++++++++ .../tests/suites/test_suite_oid.data | 48 ------------------ .../tests/suites/test_suite_oid.function | 26 ---------- 4 files changed, 76 insertions(+), 74 deletions(-) diff --git a/tests/suites/test_suite_x509write.data b/tests/suites/test_suite_x509write.data index e0dfd0f06..ddbac8993 100644 --- a/tests/suites/test_suite_x509write.data +++ b/tests/suites/test_suite_x509write.data @@ -268,3 +268,52 @@ x509_set_serial_check: Check max extension length x509_set_extension_length_check: + +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 - multi-byte subidentifier +oid_from_numeric_string:"1.1.2108":0:"29903C" + +OID from numeric string - second component greater than 39 +oid_from_numeric_string:"2.49.0.0.826.0":0:"81010000863A00" + +OID from numeric string - multi-byte first subidentifier +oid_from_numeric_string:"2.999":0:"8837" + +OID from numeric string - empty string input +oid_from_numeric_string:"":MBEDTLS_ERR_ASN1_INVALID_DATA:"" + +OID from numeric string - first component not a number +oid_from_numeric_string:"abc.1.2":MBEDTLS_ERR_ASN1_INVALID_DATA:"" + +OID from numeric string - second component not a number +oid_from_numeric_string:"1.abc.2":MBEDTLS_ERR_ASN1_INVALID_DATA:"" + +OID from numeric string - first component too large +oid_from_numeric_string:"3.1":MBEDTLS_ERR_ASN1_INVALID_DATA:"" + +OID from numeric string - first component < 2, second > 39 +oid_from_numeric_string:"1.40":MBEDTLS_ERR_ASN1_INVALID_DATA:"" + +OID from numeric string - third component not a number +oid_from_numeric_string:"1.2.abc":MBEDTLS_ERR_ASN1_INVALID_DATA:"" + +OID from numeric string - non-'.' separator between first and second +oid_from_numeric_string:"1/2.3.4":MBEDTLS_ERR_ASN1_INVALID_DATA:"" + +OID from numeric string - non-'.' separator between second and third +oid_from_numeric_string:"1.2/3.4":MBEDTLS_ERR_ASN1_INVALID_DATA:"" + +OID from numeric string - non-'.' separator between third and fourth +oid_from_numeric_string:"1.2.3/4":MBEDTLS_ERR_ASN1_INVALID_DATA:"" + +OID from numeric string - OID greater than max length (129 components) +oid_from_numeric_string:"1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1":MBEDTLS_ERR_ASN1_INVALID_DATA:"" + +OID from numeric string - OID with maximum subidentifier +oid_from_numeric_string:"2.4294967215":0:"8FFFFFFF7F" + +OID from numeric string - OID with overflowing subidentifier +oid_from_numeric_string:"2.4294967216":MBEDTLS_ERR_ASN1_INVALID_DATA:"" + diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index eb3c2f779..64b4e9e87 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -6,6 +6,7 @@ #include "mbedtls/pem.h" #include "mbedtls/oid.h" #include "mbedtls/rsa.h" +#include "mbedtls/asn1.h" #include "mbedtls/asn1write.h" #include "mbedtls/pk.h" #include "mbedtls/psa_util.h" @@ -761,3 +762,29 @@ void x509_set_extension_length_check() TEST_ASSERT(MBEDTLS_ERR_X509_BAD_INPUT_DATA == ret); } /* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_X509_USE_C */ +void oid_from_numeric_string(char *oid_str, int error_ret, + data_t *exp_oid_buf) +{ + mbedtls_asn1_buf oid = { 0, 0, NULL }; + mbedtls_asn1_buf exp_oid = { 0, 0, NULL }; + int ret; + + exp_oid.tag = MBEDTLS_ASN1_OID; + exp_oid.p = exp_oid_buf->x; + exp_oid.len = exp_oid_buf->len; + + ret = mbedtls_oid_from_numeric_string(&oid, oid_str, strlen(oid_str)); + + if (error_ret == 0) { + TEST_EQUAL(oid.len, exp_oid.len); + TEST_ASSERT(memcmp(oid.p, exp_oid.p, oid.len) == 0); + mbedtls_free(oid.p); + oid.p = NULL; + oid.len = 0; + } else { + TEST_EQUAL(ret, error_ret); + } +} +/* END_CASE */ diff --git a/tf-psa-crypto/tests/suites/test_suite_oid.data b/tf-psa-crypto/tests/suites/test_suite_oid.data index 3521c97e8..42b050580 100644 --- a/tf-psa-crypto/tests/suites/test_suite_oid.data +++ b/tf-psa-crypto/tests/suites/test_suite_oid.data @@ -105,54 +105,6 @@ oid_get_md_alg_id:"2b24030201":MBEDTLS_MD_RIPEMD160 OID hash id - invalid oid oid_get_md_alg_id:"2B864886f70d0204":-1 -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 - multi-byte subidentifier -oid_from_numeric_string:"1.1.2108":0:"29903C" - -OID from numeric string - second component greater than 39 -oid_from_numeric_string:"2.49.0.0.826.0":0:"81010000863A00" - -OID from numeric string - multi-byte first subidentifier -oid_from_numeric_string:"2.999":0:"8837" - -OID from numeric string - empty string input -oid_from_numeric_string:"":MBEDTLS_ERR_ASN1_INVALID_DATA:"" - -OID from numeric string - first component not a number -oid_from_numeric_string:"abc.1.2":MBEDTLS_ERR_ASN1_INVALID_DATA:"" - -OID from numeric string - second component not a number -oid_from_numeric_string:"1.abc.2":MBEDTLS_ERR_ASN1_INVALID_DATA:"" - -OID from numeric string - first component too large -oid_from_numeric_string:"3.1":MBEDTLS_ERR_ASN1_INVALID_DATA:"" - -OID from numeric string - first component < 2, second > 39 -oid_from_numeric_string:"1.40":MBEDTLS_ERR_ASN1_INVALID_DATA:"" - -OID from numeric string - third component not a number -oid_from_numeric_string:"1.2.abc":MBEDTLS_ERR_ASN1_INVALID_DATA:"" - -OID from numeric string - non-'.' separator between first and second -oid_from_numeric_string:"1/2.3.4":MBEDTLS_ERR_ASN1_INVALID_DATA:"" - -OID from numeric string - non-'.' separator between second and third -oid_from_numeric_string:"1.2/3.4":MBEDTLS_ERR_ASN1_INVALID_DATA:"" - -OID from numeric string - non-'.' separator between third and fourth -oid_from_numeric_string:"1.2.3/4":MBEDTLS_ERR_ASN1_INVALID_DATA:"" - -OID from numeric string - OID greater than max length (129 components) -oid_from_numeric_string:"1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1.2.3.4.5.6.7.8.1":MBEDTLS_ERR_ASN1_INVALID_DATA:"" - -OID from numeric string - OID with maximum subidentifier -oid_from_numeric_string:"2.4294967215":0:"8FFFFFFF7F" - -OID from numeric string - OID with overflowing subidentifier -oid_from_numeric_string:"2.4294967216":MBEDTLS_ERR_ASN1_INVALID_DATA:"" - mbedtls_oid_get_md_hmac - RIPEMD160 depends_on:PSA_WANT_ALG_RIPEMD160 mbedtls_oid_get_md_hmac:"2B06010505080104":MBEDTLS_MD_RIPEMD160 diff --git a/tf-psa-crypto/tests/suites/test_suite_oid.function b/tf-psa-crypto/tests/suites/test_suite_oid.function index 5cfa35b64..e96425e1a 100644 --- a/tf-psa-crypto/tests/suites/test_suite_oid.function +++ b/tf-psa-crypto/tests/suites/test_suite_oid.function @@ -118,29 +118,3 @@ void mbedtls_oid_get_md_hmac(data_t *oid, int exp_md_id) } } /* END_CASE */ - -/* BEGIN_CASE */ -void oid_from_numeric_string(char *oid_str, int error_ret, - data_t *exp_oid_buf) -{ - mbedtls_asn1_buf oid = { 0, 0, NULL }; - mbedtls_asn1_buf exp_oid = { 0, 0, NULL }; - int ret; - - exp_oid.tag = MBEDTLS_ASN1_OID; - exp_oid.p = exp_oid_buf->x; - exp_oid.len = exp_oid_buf->len; - - ret = mbedtls_oid_from_numeric_string(&oid, oid_str, strlen(oid_str)); - - if (error_ret == 0) { - TEST_EQUAL(oid.len, exp_oid.len); - TEST_ASSERT(memcmp(oid.p, exp_oid.p, oid.len) == 0); - mbedtls_free(oid.p); - oid.p = NULL; - oid.len = 0; - } else { - TEST_EQUAL(ret, error_ret); - } -} -/* END_CASE */