blob: 33a9131f987adc7f4348e38c66ebc36d54535b01 [file] [log] [blame]
Ron Eldor11ee0712019-03-25 18:22:52 +02001/* BEGIN_HEADER */
2#include "mbedtls/oid.h"
3#include "mbedtls/asn1.h"
4#include "mbedtls/asn1write.h"
5#include "string.h"
Przemek Stekiel2c70a0d2022-08-05 11:47:48 +02006#include "legacy_or_psa.h"
Ron Eldor11ee0712019-03-25 18:22:52 +02007/* END_HEADER */
8
9/* BEGIN_DEPENDENCIES
Hanno Becker612a2f12020-10-09 09:19:39 +010010 * depends_on:MBEDTLS_OID_C:!MBEDTLS_X509_REMOVE_INFO
Ron Eldor11ee0712019-03-25 18:22:52 +020011 * END_DEPENDENCIES
12 */
13
Ron Eldor685a3982019-04-03 09:46:27 +030014/* BEGIN_CASE */
15void oid_get_certificate_policies( data_t *oid, char *result_str )
Ron Eldor11ee0712019-03-25 18:22:52 +020016{
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 {
Jack Lloyd3ded1c82019-05-06 12:16:32 -040032 TEST_ASSERT( ret == 0 );
Ron Eldor11ee0712019-03-25 18:22:52 +020033 TEST_ASSERT( strcmp( ( char* )desc, result_str ) == 0 );
34 }
35}
36/* END_CASE */
Ron Eldorb6dc1052019-04-01 18:12:23 +030037
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 {
Jack Lloyd3ded1c82019-05-06 12:16:32 -040056 TEST_ASSERT( ret == 0 );
Ron Eldorb6dc1052019-04-01 18:12:23 +030057 TEST_ASSERT( strcmp( ( char * )desc, result_str ) == 0 );
58 }
59}
60/* END_CASE */
Ron Eldore8234162019-04-03 09:45:07 +030061
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 {
Jack Lloyd3ded1c82019-05-06 12:16:32 -040080 TEST_ASSERT( ret == 0 );
Ron Eldore8234162019-04-03 09:45:07 +030081 TEST_ASSERT( ext_type == exp_type );
82 }
83}
84/* END_CASE */
Jack Lloyd5ed7fff2019-05-06 12:15:44 -040085
Przemek Stekiel2c70a0d2022-08-05 11:47:48 +020086/* BEGIN_CASE */
Jack Lloyd5ed7fff2019-05-06 12:15:44 -040087void 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 */