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