• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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