aboutsummaryrefslogtreecommitdiff
path: root/tests/suites/test_suite_oid.function
blob: b06f5241009664e20612eead7dc9469ff7187272 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/* BEGIN_HEADER */
#include "mbedtls/oid.h"
#include "mbedtls/asn1.h"
#include "mbedtls/asn1write.h"
#include "string.h"
#include "mbedtls/legacy_or_psa.h"
/* END_HEADER */

/* BEGIN_DEPENDENCIES
 * depends_on:MBEDTLS_OID_C:!MBEDTLS_X509_REMOVE_INFO
 * END_DEPENDENCIES
 */

/* BEGIN_CASE */
void oid_get_certificate_policies( data_t *oid, char *result_str )
{
    mbedtls_asn1_buf asn1_buf = { 0, 0, NULL };
    int ret;
    const char *desc;

    asn1_buf.tag = MBEDTLS_ASN1_OID;
    asn1_buf.p = oid->x;
    asn1_buf.len = oid->len;

    ret = mbedtls_oid_get_certificate_policies( &asn1_buf, &desc );
    if( strlen( result_str ) == 0 )
    {
        TEST_ASSERT( ret == MBEDTLS_ERR_OID_NOT_FOUND );
    }
    else
    {
        TEST_ASSERT( ret == 0 );
        TEST_ASSERT( strcmp( ( char* )desc, result_str ) == 0 );
    }
}
/* END_CASE */

/* BEGIN_CASE */
void oid_get_extended_key_usage( data_t *oid, char *result_str )
{
    mbedtls_asn1_buf asn1_buf = { 0, 0, NULL };
    int ret;
    const char *desc;

    asn1_buf.tag = MBEDTLS_ASN1_OID;
    asn1_buf.p = oid->x;
    asn1_buf.len = oid->len;

    ret = mbedtls_oid_get_extended_key_usage( &asn1_buf, &desc );
    if( strlen( result_str ) == 0 )
    {
        TEST_ASSERT( ret == MBEDTLS_ERR_OID_NOT_FOUND );
    }
    else
    {
        TEST_ASSERT( ret == 0 );
        TEST_ASSERT( strcmp( ( char * )desc, result_str ) == 0 );
    }
}
/* END_CASE */

/* BEGIN_CASE */
void oid_get_x509_extension( data_t *oid, int exp_type )
{
    mbedtls_asn1_buf ext_oid = { 0, 0, NULL };
    int ret;
    int ext_type;

    ext_oid.tag = MBEDTLS_ASN1_OID;
    ext_oid.p = oid->x;
    ext_oid.len = oid->len;

    ret = mbedtls_oid_get_x509_ext_type( &ext_oid, &ext_type );
    if( exp_type == 0 )
    {
        TEST_ASSERT( ret == MBEDTLS_ERR_OID_NOT_FOUND );
    }
    else
    {
        TEST_ASSERT( ret == 0 );
        TEST_ASSERT( ext_type == exp_type );
    }
}
/* END_CASE */

/* BEGIN_CASE */
void oid_get_md_alg_id( data_t *oid, int exp_md_id )
{
    mbedtls_asn1_buf md_oid = { 0, 0, NULL };
    int ret;
    mbedtls_md_type_t md_id = 0;

    md_oid.tag = MBEDTLS_ASN1_OID;
    md_oid.p = oid->x;
    md_oid.len = oid->len;

    ret = mbedtls_oid_get_md_alg( &md_oid, &md_id );

    if( exp_md_id < 0 )
    {
        TEST_ASSERT( ret == MBEDTLS_ERR_OID_NOT_FOUND );
        TEST_ASSERT( md_id == 0);
    }
    else
    {
        TEST_ASSERT( ret == 0 );
        TEST_ASSERT( (mbedtls_md_type_t)exp_md_id == md_id );
    }
}
/* END_CASE */