1/* BEGIN_HEADER */ 2#include "x509_oid.h" 3#include "mbedtls/asn1.h" 4#include "mbedtls/asn1write.h" 5#include "string.h" 6/* END_HEADER */ 7 8/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */ 9void oid_get_certificate_policies(data_t *oid, char *result_str) 10{ 11 mbedtls_asn1_buf asn1_buf = { 0, 0, NULL }; 12 int ret; 13 const char *desc; 14 15 asn1_buf.tag = MBEDTLS_ASN1_OID; 16 asn1_buf.p = oid->x; 17 asn1_buf.len = oid->len; 18 19 ret = mbedtls_x509_oid_get_certificate_policies(&asn1_buf, &desc); 20 if (strlen(result_str) == 0) { 21 TEST_ASSERT(ret == MBEDTLS_ERR_X509_UNKNOWN_OID); 22 } else { 23 TEST_ASSERT(ret == 0); 24 TEST_ASSERT(strcmp((char *) desc, result_str) == 0); 25 } 26} 27/* END_CASE */ 28 29/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */ 30void oid_get_extended_key_usage(data_t *oid, char *result_str) 31{ 32 mbedtls_asn1_buf asn1_buf = { 0, 0, NULL }; 33 int ret; 34 const char *desc; 35 36 asn1_buf.tag = MBEDTLS_ASN1_OID; 37 asn1_buf.p = oid->x; 38 asn1_buf.len = oid->len; 39 40 ret = mbedtls_x509_oid_get_extended_key_usage(&asn1_buf, &desc); 41 if (strlen(result_str) == 0) { 42 TEST_ASSERT(ret == MBEDTLS_ERR_X509_UNKNOWN_OID); 43 } else { 44 TEST_ASSERT(ret == 0); 45 TEST_ASSERT(strcmp((char *) desc, result_str) == 0); 46 } 47} 48/* END_CASE */ 49 50/* BEGIN_CASE depends_on:MBEDTLS_X509_OID_HAVE_GET_X509_EXT_TYPE */ 51void oid_get_x509_extension(data_t *oid, int exp_type) 52{ 53 mbedtls_asn1_buf ext_oid = { 0, 0, NULL }; 54 int ret; 55 int ext_type; 56 57 ext_oid.tag = MBEDTLS_ASN1_OID; 58 ext_oid.p = oid->x; 59 ext_oid.len = oid->len; 60 61 ret = mbedtls_x509_oid_get_x509_ext_type(&ext_oid, &ext_type); 62 if (exp_type == 0) { 63 TEST_ASSERT(ret == MBEDTLS_ERR_X509_UNKNOWN_OID); 64 } else { 65 TEST_ASSERT(ret == 0); 66 TEST_ASSERT(ext_type == exp_type); 67 } 68} 69/* END_CASE */ 70 71/* BEGIN_CASE depends_on:MBEDTLS_X509_OID_HAVE_GET_MD_ALG */ 72void oid_get_md_alg_id(data_t *oid, int exp_md_id) 73{ 74 mbedtls_asn1_buf md_oid = { 0, 0, NULL }; 75 int ret; 76 mbedtls_md_type_t md_id = 0; 77 78 md_oid.tag = MBEDTLS_ASN1_OID; 79 md_oid.p = oid->x; 80 md_oid.len = oid->len; 81 82 ret = mbedtls_x509_oid_get_md_alg(&md_oid, &md_id); 83 84 if (exp_md_id < 0) { 85 TEST_ASSERT(ret == MBEDTLS_ERR_X509_UNKNOWN_OID); 86 TEST_ASSERT(md_id == 0); 87 } else { 88 TEST_ASSERT(ret == 0); 89 TEST_ASSERT((mbedtls_md_type_t) exp_md_id == md_id); 90 } 91} 92/* END_CASE */ 93