xref: /aosp_15_r20/external/mbedtls/tests/src/certs.c (revision 62c56f9862f102b96d72393aff6076c951fb8148)
1*62c56f98SSadaf Ebrahimi /*
2*62c56f98SSadaf Ebrahimi  *  X.509 test certificates
3*62c56f98SSadaf Ebrahimi  *
4*62c56f98SSadaf Ebrahimi  *  Copyright The Mbed TLS Contributors
5*62c56f98SSadaf Ebrahimi  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
6*62c56f98SSadaf Ebrahimi  */
7*62c56f98SSadaf Ebrahimi 
8*62c56f98SSadaf Ebrahimi #include "common.h"
9*62c56f98SSadaf Ebrahimi 
10*62c56f98SSadaf Ebrahimi #include <test/certs.h>
11*62c56f98SSadaf Ebrahimi 
12*62c56f98SSadaf Ebrahimi #include "mbedtls/build_info.h"
13*62c56f98SSadaf Ebrahimi 
14*62c56f98SSadaf Ebrahimi #include "mbedtls/pk.h"
15*62c56f98SSadaf Ebrahimi 
16*62c56f98SSadaf Ebrahimi #include "test_certs.h"
17*62c56f98SSadaf Ebrahimi 
18*62c56f98SSadaf Ebrahimi /*
19*62c56f98SSadaf Ebrahimi  *
20*62c56f98SSadaf Ebrahimi  * Test certificates and keys as C variables
21*62c56f98SSadaf Ebrahimi  *
22*62c56f98SSadaf Ebrahimi  */
23*62c56f98SSadaf Ebrahimi 
24*62c56f98SSadaf Ebrahimi /*
25*62c56f98SSadaf Ebrahimi  * CA
26*62c56f98SSadaf Ebrahimi  */
27*62c56f98SSadaf Ebrahimi 
28*62c56f98SSadaf Ebrahimi const char mbedtls_test_ca_crt_ec_pem[]           = TEST_CA_CRT_EC_PEM;
29*62c56f98SSadaf Ebrahimi const char mbedtls_test_ca_key_ec_pem[]           = TEST_CA_KEY_EC_PEM;
30*62c56f98SSadaf Ebrahimi const char mbedtls_test_ca_pwd_ec_pem[]           = TEST_CA_PWD_EC_PEM;
31*62c56f98SSadaf Ebrahimi const char mbedtls_test_ca_key_rsa_pem[]          = TEST_CA_KEY_RSA_PEM;
32*62c56f98SSadaf Ebrahimi const char mbedtls_test_ca_pwd_rsa_pem[]          = TEST_CA_PWD_RSA_PEM;
33*62c56f98SSadaf Ebrahimi const char mbedtls_test_ca_crt_rsa_sha1_pem[]     = TEST_CA_CRT_RSA_SHA1_PEM;
34*62c56f98SSadaf Ebrahimi const char mbedtls_test_ca_crt_rsa_sha256_pem[]   = TEST_CA_CRT_RSA_SHA256_PEM;
35*62c56f98SSadaf Ebrahimi 
36*62c56f98SSadaf Ebrahimi const unsigned char mbedtls_test_ca_crt_ec_der[]   = TEST_CA_CRT_EC_DER;
37*62c56f98SSadaf Ebrahimi const unsigned char mbedtls_test_ca_key_ec_der[]   = TEST_CA_KEY_EC_DER;
38*62c56f98SSadaf Ebrahimi const unsigned char mbedtls_test_ca_key_rsa_der[]  = TEST_CA_KEY_RSA_DER;
39*62c56f98SSadaf Ebrahimi const unsigned char mbedtls_test_ca_crt_rsa_sha1_der[]   =
40*62c56f98SSadaf Ebrahimi     TEST_CA_CRT_RSA_SHA1_DER;
41*62c56f98SSadaf Ebrahimi const unsigned char mbedtls_test_ca_crt_rsa_sha256_der[] =
42*62c56f98SSadaf Ebrahimi     TEST_CA_CRT_RSA_SHA256_DER;
43*62c56f98SSadaf Ebrahimi 
44*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_crt_ec_pem_len =
45*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_crt_ec_pem);
46*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_key_ec_pem_len =
47*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_key_ec_pem);
48*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_pwd_ec_pem_len =
49*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_pwd_ec_pem) - 1;
50*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_key_rsa_pem_len =
51*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_key_rsa_pem);
52*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_pwd_rsa_pem_len =
53*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_pwd_rsa_pem) - 1;
54*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_crt_rsa_sha1_pem_len =
55*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_crt_rsa_sha1_pem);
56*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_crt_rsa_sha256_pem_len =
57*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_crt_rsa_sha256_pem);
58*62c56f98SSadaf Ebrahimi 
59*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_crt_ec_der_len =
60*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_crt_ec_der);
61*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_key_ec_der_len =
62*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_key_ec_der);
63*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_pwd_ec_der_len = 0;
64*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_key_rsa_der_len =
65*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_key_rsa_der);
66*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_pwd_rsa_der_len = 0;
67*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_crt_rsa_sha1_der_len =
68*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_crt_rsa_sha1_der);
69*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_crt_rsa_sha256_der_len =
70*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_crt_rsa_sha256_der);
71*62c56f98SSadaf Ebrahimi 
72*62c56f98SSadaf Ebrahimi /*
73*62c56f98SSadaf Ebrahimi  * Server
74*62c56f98SSadaf Ebrahimi  */
75*62c56f98SSadaf Ebrahimi 
76*62c56f98SSadaf Ebrahimi const char mbedtls_test_srv_crt_ec_pem[]           = TEST_SRV_CRT_EC_PEM;
77*62c56f98SSadaf Ebrahimi const char mbedtls_test_srv_key_ec_pem[]           = TEST_SRV_KEY_EC_PEM;
78*62c56f98SSadaf Ebrahimi const char mbedtls_test_srv_pwd_ec_pem[]           = "";
79*62c56f98SSadaf Ebrahimi const char mbedtls_test_srv_key_rsa_pem[]          = TEST_SRV_KEY_RSA_PEM;
80*62c56f98SSadaf Ebrahimi const char mbedtls_test_srv_pwd_rsa_pem[]          = "";
81*62c56f98SSadaf Ebrahimi const char mbedtls_test_srv_crt_rsa_sha1_pem[]     = TEST_SRV_CRT_RSA_SHA1_PEM;
82*62c56f98SSadaf Ebrahimi const char mbedtls_test_srv_crt_rsa_sha256_pem[]   = TEST_SRV_CRT_RSA_SHA256_PEM;
83*62c56f98SSadaf Ebrahimi 
84*62c56f98SSadaf Ebrahimi const unsigned char mbedtls_test_srv_crt_ec_der[]   = TEST_SRV_CRT_EC_DER;
85*62c56f98SSadaf Ebrahimi const unsigned char mbedtls_test_srv_key_ec_der[]   = TEST_SRV_KEY_EC_DER;
86*62c56f98SSadaf Ebrahimi const unsigned char mbedtls_test_srv_key_rsa_der[]  = TEST_SRV_KEY_RSA_DER;
87*62c56f98SSadaf Ebrahimi const unsigned char mbedtls_test_srv_crt_rsa_sha1_der[]   =
88*62c56f98SSadaf Ebrahimi     TEST_SRV_CRT_RSA_SHA1_DER;
89*62c56f98SSadaf Ebrahimi const unsigned char mbedtls_test_srv_crt_rsa_sha256_der[] =
90*62c56f98SSadaf Ebrahimi     TEST_SRV_CRT_RSA_SHA256_DER;
91*62c56f98SSadaf Ebrahimi 
92*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_crt_ec_pem_len =
93*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_crt_ec_pem);
94*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_key_ec_pem_len =
95*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_key_ec_pem);
96*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_pwd_ec_pem_len =
97*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_pwd_ec_pem) - 1;
98*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_key_rsa_pem_len =
99*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_key_rsa_pem);
100*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_pwd_rsa_pem_len =
101*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_pwd_rsa_pem) - 1;
102*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_crt_rsa_sha1_pem_len =
103*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_crt_rsa_sha1_pem);
104*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_crt_rsa_sha256_pem_len =
105*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_crt_rsa_sha256_pem);
106*62c56f98SSadaf Ebrahimi 
107*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_crt_ec_der_len =
108*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_crt_ec_der);
109*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_key_ec_der_len =
110*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_key_ec_der);
111*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_pwd_ec_der_len = 0;
112*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_key_rsa_der_len =
113*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_key_rsa_der);
114*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_pwd_rsa_der_len = 0;
115*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_crt_rsa_sha1_der_len =
116*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_crt_rsa_sha1_der);
117*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_crt_rsa_sha256_der_len =
118*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_crt_rsa_sha256_der);
119*62c56f98SSadaf Ebrahimi 
120*62c56f98SSadaf Ebrahimi /*
121*62c56f98SSadaf Ebrahimi  * Client
122*62c56f98SSadaf Ebrahimi  */
123*62c56f98SSadaf Ebrahimi 
124*62c56f98SSadaf Ebrahimi const char mbedtls_test_cli_crt_ec_pem[]   = TEST_CLI_CRT_EC_PEM;
125*62c56f98SSadaf Ebrahimi const char mbedtls_test_cli_key_ec_pem[]   = TEST_CLI_KEY_EC_PEM;
126*62c56f98SSadaf Ebrahimi const char mbedtls_test_cli_pwd_ec_pem[]   = "";
127*62c56f98SSadaf Ebrahimi const char mbedtls_test_cli_key_rsa_pem[]  = TEST_CLI_KEY_RSA_PEM;
128*62c56f98SSadaf Ebrahimi const char mbedtls_test_cli_pwd_rsa_pem[]  = "";
129*62c56f98SSadaf Ebrahimi const char mbedtls_test_cli_crt_rsa_pem[]  = TEST_CLI_CRT_RSA_PEM;
130*62c56f98SSadaf Ebrahimi 
131*62c56f98SSadaf Ebrahimi const unsigned char mbedtls_test_cli_crt_ec_der[]   = TEST_CLI_CRT_EC_DER;
132*62c56f98SSadaf Ebrahimi const unsigned char mbedtls_test_cli_key_ec_der[]   = TEST_CLI_KEY_EC_DER;
133*62c56f98SSadaf Ebrahimi const unsigned char mbedtls_test_cli_key_rsa_der[]  = TEST_CLI_KEY_RSA_DER;
134*62c56f98SSadaf Ebrahimi const unsigned char mbedtls_test_cli_crt_rsa_der[]  = TEST_CLI_CRT_RSA_DER;
135*62c56f98SSadaf Ebrahimi 
136*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_crt_ec_pem_len =
137*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_cli_crt_ec_pem);
138*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_key_ec_pem_len =
139*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_cli_key_ec_pem);
140*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_pwd_ec_pem_len =
141*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_cli_pwd_ec_pem) - 1;
142*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_key_rsa_pem_len =
143*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_cli_key_rsa_pem);
144*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_pwd_rsa_pem_len =
145*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_cli_pwd_rsa_pem) - 1;
146*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_crt_rsa_pem_len =
147*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_cli_crt_rsa_pem);
148*62c56f98SSadaf Ebrahimi 
149*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_crt_ec_der_len =
150*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_cli_crt_ec_der);
151*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_key_ec_der_len =
152*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_cli_key_ec_der);
153*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_key_rsa_der_len =
154*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_cli_key_rsa_der);
155*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_crt_rsa_der_len =
156*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_cli_crt_rsa_der);
157*62c56f98SSadaf Ebrahimi 
158*62c56f98SSadaf Ebrahimi /*
159*62c56f98SSadaf Ebrahimi  *
160*62c56f98SSadaf Ebrahimi  * Definitions of test CRTs without specification of all parameters, choosing
161*62c56f98SSadaf Ebrahimi  * them automatically according to the config. For example, mbedtls_test_ca_crt
162*62c56f98SSadaf Ebrahimi  * is one of mbedtls_test_ca_crt_{rsa|ec}_{sha1|sha256}_{pem|der}.
163*62c56f98SSadaf Ebrahimi  *
164*62c56f98SSadaf Ebrahimi  */
165*62c56f98SSadaf Ebrahimi 
166*62c56f98SSadaf Ebrahimi /*
167*62c56f98SSadaf Ebrahimi  * Dispatch between PEM and DER according to config
168*62c56f98SSadaf Ebrahimi  */
169*62c56f98SSadaf Ebrahimi 
170*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_PEM_PARSE_C)
171*62c56f98SSadaf Ebrahimi 
172*62c56f98SSadaf Ebrahimi /* PEM encoded test CA certificates and keys */
173*62c56f98SSadaf Ebrahimi 
174*62c56f98SSadaf Ebrahimi #define TEST_CA_KEY_RSA        TEST_CA_KEY_RSA_PEM
175*62c56f98SSadaf Ebrahimi #define TEST_CA_PWD_RSA        TEST_CA_PWD_RSA_PEM
176*62c56f98SSadaf Ebrahimi #define TEST_CA_CRT_RSA_SHA256 TEST_CA_CRT_RSA_SHA256_PEM
177*62c56f98SSadaf Ebrahimi #define TEST_CA_CRT_RSA_SHA1   TEST_CA_CRT_RSA_SHA1_PEM
178*62c56f98SSadaf Ebrahimi #define TEST_CA_KEY_EC         TEST_CA_KEY_EC_PEM
179*62c56f98SSadaf Ebrahimi #define TEST_CA_PWD_EC         TEST_CA_PWD_EC_PEM
180*62c56f98SSadaf Ebrahimi #define TEST_CA_CRT_EC         TEST_CA_CRT_EC_PEM
181*62c56f98SSadaf Ebrahimi 
182*62c56f98SSadaf Ebrahimi /* PEM encoded test server certificates and keys */
183*62c56f98SSadaf Ebrahimi 
184*62c56f98SSadaf Ebrahimi #define TEST_SRV_KEY_RSA        TEST_SRV_KEY_RSA_PEM
185*62c56f98SSadaf Ebrahimi #define TEST_SRV_PWD_RSA        ""
186*62c56f98SSadaf Ebrahimi #define TEST_SRV_CRT_RSA_SHA256 TEST_SRV_CRT_RSA_SHA256_PEM
187*62c56f98SSadaf Ebrahimi #define TEST_SRV_CRT_RSA_SHA1   TEST_SRV_CRT_RSA_SHA1_PEM
188*62c56f98SSadaf Ebrahimi #define TEST_SRV_KEY_EC         TEST_SRV_KEY_EC_PEM
189*62c56f98SSadaf Ebrahimi #define TEST_SRV_PWD_EC         ""
190*62c56f98SSadaf Ebrahimi #define TEST_SRV_CRT_EC         TEST_SRV_CRT_EC_PEM
191*62c56f98SSadaf Ebrahimi 
192*62c56f98SSadaf Ebrahimi /* PEM encoded test client certificates and keys */
193*62c56f98SSadaf Ebrahimi 
194*62c56f98SSadaf Ebrahimi #define TEST_CLI_KEY_RSA  TEST_CLI_KEY_RSA_PEM
195*62c56f98SSadaf Ebrahimi #define TEST_CLI_PWD_RSA  ""
196*62c56f98SSadaf Ebrahimi #define TEST_CLI_CRT_RSA  TEST_CLI_CRT_RSA_PEM
197*62c56f98SSadaf Ebrahimi #define TEST_CLI_KEY_EC   TEST_CLI_KEY_EC_PEM
198*62c56f98SSadaf Ebrahimi #define TEST_CLI_PWD_EC   ""
199*62c56f98SSadaf Ebrahimi #define TEST_CLI_CRT_EC   TEST_CLI_CRT_EC_PEM
200*62c56f98SSadaf Ebrahimi 
201*62c56f98SSadaf Ebrahimi #else /* MBEDTLS_PEM_PARSE_C */
202*62c56f98SSadaf Ebrahimi 
203*62c56f98SSadaf Ebrahimi /* DER encoded test CA certificates and keys */
204*62c56f98SSadaf Ebrahimi 
205*62c56f98SSadaf Ebrahimi #define TEST_CA_KEY_RSA        TEST_CA_KEY_RSA_DER
206*62c56f98SSadaf Ebrahimi #define TEST_CA_PWD_RSA        ""
207*62c56f98SSadaf Ebrahimi #define TEST_CA_CRT_RSA_SHA256 TEST_CA_CRT_RSA_SHA256_DER
208*62c56f98SSadaf Ebrahimi #define TEST_CA_CRT_RSA_SHA1   TEST_CA_CRT_RSA_SHA1_DER
209*62c56f98SSadaf Ebrahimi #define TEST_CA_KEY_EC         TEST_CA_KEY_EC_DER
210*62c56f98SSadaf Ebrahimi #define TEST_CA_PWD_EC         ""
211*62c56f98SSadaf Ebrahimi #define TEST_CA_CRT_EC         TEST_CA_CRT_EC_DER
212*62c56f98SSadaf Ebrahimi 
213*62c56f98SSadaf Ebrahimi /* DER encoded test server certificates and keys */
214*62c56f98SSadaf Ebrahimi 
215*62c56f98SSadaf Ebrahimi #define TEST_SRV_KEY_RSA        TEST_SRV_KEY_RSA_DER
216*62c56f98SSadaf Ebrahimi #define TEST_SRV_PWD_RSA        ""
217*62c56f98SSadaf Ebrahimi #define TEST_SRV_CRT_RSA_SHA256 TEST_SRV_CRT_RSA_SHA256_DER
218*62c56f98SSadaf Ebrahimi #define TEST_SRV_CRT_RSA_SHA1   TEST_SRV_CRT_RSA_SHA1_DER
219*62c56f98SSadaf Ebrahimi #define TEST_SRV_KEY_EC         TEST_SRV_KEY_EC_DER
220*62c56f98SSadaf Ebrahimi #define TEST_SRV_PWD_EC         ""
221*62c56f98SSadaf Ebrahimi #define TEST_SRV_CRT_EC         TEST_SRV_CRT_EC_DER
222*62c56f98SSadaf Ebrahimi 
223*62c56f98SSadaf Ebrahimi /* DER encoded test client certificates and keys */
224*62c56f98SSadaf Ebrahimi 
225*62c56f98SSadaf Ebrahimi #define TEST_CLI_KEY_RSA  TEST_CLI_KEY_RSA_DER
226*62c56f98SSadaf Ebrahimi #define TEST_CLI_PWD_RSA  ""
227*62c56f98SSadaf Ebrahimi #define TEST_CLI_CRT_RSA  TEST_CLI_CRT_RSA_DER
228*62c56f98SSadaf Ebrahimi #define TEST_CLI_KEY_EC   TEST_CLI_KEY_EC_DER
229*62c56f98SSadaf Ebrahimi #define TEST_CLI_PWD_EC   ""
230*62c56f98SSadaf Ebrahimi #define TEST_CLI_CRT_EC   TEST_CLI_CRT_EC_DER
231*62c56f98SSadaf Ebrahimi 
232*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_PEM_PARSE_C */
233*62c56f98SSadaf Ebrahimi 
234*62c56f98SSadaf Ebrahimi const char mbedtls_test_ca_key_rsa[]         = TEST_CA_KEY_RSA;
235*62c56f98SSadaf Ebrahimi const char mbedtls_test_ca_pwd_rsa[]         = TEST_CA_PWD_RSA;
236*62c56f98SSadaf Ebrahimi const char mbedtls_test_ca_crt_rsa_sha256[]  = TEST_CA_CRT_RSA_SHA256;
237*62c56f98SSadaf Ebrahimi const char mbedtls_test_ca_crt_rsa_sha1[]    = TEST_CA_CRT_RSA_SHA1;
238*62c56f98SSadaf Ebrahimi const char mbedtls_test_ca_key_ec[]          = TEST_CA_KEY_EC;
239*62c56f98SSadaf Ebrahimi const char mbedtls_test_ca_pwd_ec[]          = TEST_CA_PWD_EC;
240*62c56f98SSadaf Ebrahimi const char mbedtls_test_ca_crt_ec[]          = TEST_CA_CRT_EC;
241*62c56f98SSadaf Ebrahimi 
242*62c56f98SSadaf Ebrahimi const char mbedtls_test_srv_key_rsa[]        = TEST_SRV_KEY_RSA;
243*62c56f98SSadaf Ebrahimi const char mbedtls_test_srv_pwd_rsa[]        = TEST_SRV_PWD_RSA;
244*62c56f98SSadaf Ebrahimi const char mbedtls_test_srv_crt_rsa_sha256[] = TEST_SRV_CRT_RSA_SHA256;
245*62c56f98SSadaf Ebrahimi const char mbedtls_test_srv_crt_rsa_sha1[]   = TEST_SRV_CRT_RSA_SHA1;
246*62c56f98SSadaf Ebrahimi const char mbedtls_test_srv_key_ec[]         = TEST_SRV_KEY_EC;
247*62c56f98SSadaf Ebrahimi const char mbedtls_test_srv_pwd_ec[]         = TEST_SRV_PWD_EC;
248*62c56f98SSadaf Ebrahimi const char mbedtls_test_srv_crt_ec[]         = TEST_SRV_CRT_EC;
249*62c56f98SSadaf Ebrahimi 
250*62c56f98SSadaf Ebrahimi const char mbedtls_test_cli_key_rsa[]        = TEST_CLI_KEY_RSA;
251*62c56f98SSadaf Ebrahimi const char mbedtls_test_cli_pwd_rsa[]        = TEST_CLI_PWD_RSA;
252*62c56f98SSadaf Ebrahimi const char mbedtls_test_cli_crt_rsa[]        = TEST_CLI_CRT_RSA;
253*62c56f98SSadaf Ebrahimi const char mbedtls_test_cli_key_ec[]         = TEST_CLI_KEY_EC;
254*62c56f98SSadaf Ebrahimi const char mbedtls_test_cli_pwd_ec[]         = TEST_CLI_PWD_EC;
255*62c56f98SSadaf Ebrahimi const char mbedtls_test_cli_crt_ec[]         = TEST_CLI_CRT_EC;
256*62c56f98SSadaf Ebrahimi 
257*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_key_rsa_len =
258*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_key_rsa);
259*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_pwd_rsa_len =
260*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_pwd_rsa) - 1;
261*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_crt_rsa_sha256_len =
262*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_crt_rsa_sha256);
263*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_crt_rsa_sha1_len =
264*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_crt_rsa_sha1);
265*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_key_ec_len =
266*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_key_ec);
267*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_pwd_ec_len =
268*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_pwd_ec) - 1;
269*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_crt_ec_len =
270*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_crt_ec);
271*62c56f98SSadaf Ebrahimi 
272*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_key_rsa_len =
273*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_key_rsa);
274*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_pwd_rsa_len =
275*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_pwd_rsa) -1;
276*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_crt_rsa_sha256_len =
277*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_crt_rsa_sha256);
278*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_crt_rsa_sha1_len =
279*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_crt_rsa_sha1);
280*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_key_ec_len =
281*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_key_ec);
282*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_pwd_ec_len =
283*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_pwd_ec) - 1;
284*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_crt_ec_len =
285*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_crt_ec);
286*62c56f98SSadaf Ebrahimi 
287*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_key_rsa_len =
288*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_cli_key_rsa);
289*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_pwd_rsa_len =
290*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_cli_pwd_rsa) - 1;
291*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_crt_rsa_len =
292*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_cli_crt_rsa);
293*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_key_ec_len =
294*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_cli_key_ec);
295*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_pwd_ec_len =
296*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_cli_pwd_ec) - 1;
297*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_crt_ec_len =
298*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_cli_crt_ec);
299*62c56f98SSadaf Ebrahimi 
300*62c56f98SSadaf Ebrahimi /*
301*62c56f98SSadaf Ebrahimi  * Dispatch between SHA-1 and SHA-256
302*62c56f98SSadaf Ebrahimi  */
303*62c56f98SSadaf Ebrahimi 
304*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_MD_CAN_SHA256)
305*62c56f98SSadaf Ebrahimi #define TEST_CA_CRT_RSA  TEST_CA_CRT_RSA_SHA256
306*62c56f98SSadaf Ebrahimi #define TEST_SRV_CRT_RSA TEST_SRV_CRT_RSA_SHA256
307*62c56f98SSadaf Ebrahimi #else
308*62c56f98SSadaf Ebrahimi #define TEST_CA_CRT_RSA  TEST_CA_CRT_RSA_SHA1
309*62c56f98SSadaf Ebrahimi #define TEST_SRV_CRT_RSA TEST_SRV_CRT_RSA_SHA1
310*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_MD_CAN_SHA256 */
311*62c56f98SSadaf Ebrahimi 
312*62c56f98SSadaf Ebrahimi const char mbedtls_test_ca_crt_rsa[]  = TEST_CA_CRT_RSA;
313*62c56f98SSadaf Ebrahimi const char mbedtls_test_srv_crt_rsa[] = TEST_SRV_CRT_RSA;
314*62c56f98SSadaf Ebrahimi 
315*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_crt_rsa_len =
316*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_crt_rsa);
317*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_crt_rsa_len =
318*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_srv_crt_rsa);
319*62c56f98SSadaf Ebrahimi 
320*62c56f98SSadaf Ebrahimi /*
321*62c56f98SSadaf Ebrahimi  * Dispatch between RSA and EC
322*62c56f98SSadaf Ebrahimi  */
323*62c56f98SSadaf Ebrahimi 
324*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_RSA_C)
325*62c56f98SSadaf Ebrahimi 
326*62c56f98SSadaf Ebrahimi #define TEST_CA_KEY TEST_CA_KEY_RSA
327*62c56f98SSadaf Ebrahimi #define TEST_CA_PWD TEST_CA_PWD_RSA
328*62c56f98SSadaf Ebrahimi #define TEST_CA_CRT TEST_CA_CRT_RSA
329*62c56f98SSadaf Ebrahimi 
330*62c56f98SSadaf Ebrahimi #define TEST_SRV_KEY TEST_SRV_KEY_RSA
331*62c56f98SSadaf Ebrahimi #define TEST_SRV_PWD TEST_SRV_PWD_RSA
332*62c56f98SSadaf Ebrahimi #define TEST_SRV_CRT TEST_SRV_CRT_RSA
333*62c56f98SSadaf Ebrahimi 
334*62c56f98SSadaf Ebrahimi #define TEST_CLI_KEY TEST_CLI_KEY_RSA
335*62c56f98SSadaf Ebrahimi #define TEST_CLI_PWD TEST_CLI_PWD_RSA
336*62c56f98SSadaf Ebrahimi #define TEST_CLI_CRT TEST_CLI_CRT_RSA
337*62c56f98SSadaf Ebrahimi 
338*62c56f98SSadaf Ebrahimi #else /* no RSA, so assume ECDSA */
339*62c56f98SSadaf Ebrahimi 
340*62c56f98SSadaf Ebrahimi #define TEST_CA_KEY TEST_CA_KEY_EC
341*62c56f98SSadaf Ebrahimi #define TEST_CA_PWD TEST_CA_PWD_EC
342*62c56f98SSadaf Ebrahimi #define TEST_CA_CRT TEST_CA_CRT_EC
343*62c56f98SSadaf Ebrahimi 
344*62c56f98SSadaf Ebrahimi #define TEST_SRV_KEY TEST_SRV_KEY_EC
345*62c56f98SSadaf Ebrahimi #define TEST_SRV_PWD TEST_SRV_PWD_EC
346*62c56f98SSadaf Ebrahimi #define TEST_SRV_CRT TEST_SRV_CRT_EC
347*62c56f98SSadaf Ebrahimi 
348*62c56f98SSadaf Ebrahimi #define TEST_CLI_KEY TEST_CLI_KEY_EC
349*62c56f98SSadaf Ebrahimi #define TEST_CLI_PWD TEST_CLI_PWD_EC
350*62c56f98SSadaf Ebrahimi #define TEST_CLI_CRT TEST_CLI_CRT_EC
351*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_RSA_C */
352*62c56f98SSadaf Ebrahimi 
353*62c56f98SSadaf Ebrahimi /* API stability forces us to declare
354*62c56f98SSadaf Ebrahimi  *   mbedtls_test_{ca|srv|cli}_{key|pwd|crt}
355*62c56f98SSadaf Ebrahimi  * as pointers. */
356*62c56f98SSadaf Ebrahimi static const char test_ca_key[] = TEST_CA_KEY;
357*62c56f98SSadaf Ebrahimi static const char test_ca_pwd[] = TEST_CA_PWD;
358*62c56f98SSadaf Ebrahimi static const char test_ca_crt[] = TEST_CA_CRT;
359*62c56f98SSadaf Ebrahimi 
360*62c56f98SSadaf Ebrahimi static const char test_srv_key[] = TEST_SRV_KEY;
361*62c56f98SSadaf Ebrahimi static const char test_srv_pwd[] = TEST_SRV_PWD;
362*62c56f98SSadaf Ebrahimi static const char test_srv_crt[] = TEST_SRV_CRT;
363*62c56f98SSadaf Ebrahimi 
364*62c56f98SSadaf Ebrahimi static const char test_cli_key[] = TEST_CLI_KEY;
365*62c56f98SSadaf Ebrahimi static const char test_cli_pwd[] = TEST_CLI_PWD;
366*62c56f98SSadaf Ebrahimi static const char test_cli_crt[] = TEST_CLI_CRT;
367*62c56f98SSadaf Ebrahimi 
368*62c56f98SSadaf Ebrahimi const char *mbedtls_test_ca_key = test_ca_key;
369*62c56f98SSadaf Ebrahimi const char *mbedtls_test_ca_pwd = test_ca_pwd;
370*62c56f98SSadaf Ebrahimi const char *mbedtls_test_ca_crt = test_ca_crt;
371*62c56f98SSadaf Ebrahimi 
372*62c56f98SSadaf Ebrahimi const char *mbedtls_test_srv_key = test_srv_key;
373*62c56f98SSadaf Ebrahimi const char *mbedtls_test_srv_pwd = test_srv_pwd;
374*62c56f98SSadaf Ebrahimi const char *mbedtls_test_srv_crt = test_srv_crt;
375*62c56f98SSadaf Ebrahimi 
376*62c56f98SSadaf Ebrahimi const char *mbedtls_test_cli_key = test_cli_key;
377*62c56f98SSadaf Ebrahimi const char *mbedtls_test_cli_pwd = test_cli_pwd;
378*62c56f98SSadaf Ebrahimi const char *mbedtls_test_cli_crt = test_cli_crt;
379*62c56f98SSadaf Ebrahimi 
380*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_key_len =
381*62c56f98SSadaf Ebrahimi     sizeof(test_ca_key);
382*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_pwd_len =
383*62c56f98SSadaf Ebrahimi     sizeof(test_ca_pwd) - 1;
384*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_ca_crt_len =
385*62c56f98SSadaf Ebrahimi     sizeof(test_ca_crt);
386*62c56f98SSadaf Ebrahimi 
387*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_key_len =
388*62c56f98SSadaf Ebrahimi     sizeof(test_srv_key);
389*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_pwd_len =
390*62c56f98SSadaf Ebrahimi     sizeof(test_srv_pwd) - 1;
391*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_srv_crt_len =
392*62c56f98SSadaf Ebrahimi     sizeof(test_srv_crt);
393*62c56f98SSadaf Ebrahimi 
394*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_key_len =
395*62c56f98SSadaf Ebrahimi     sizeof(test_cli_key);
396*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_pwd_len =
397*62c56f98SSadaf Ebrahimi     sizeof(test_cli_pwd) - 1;
398*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cli_crt_len =
399*62c56f98SSadaf Ebrahimi     sizeof(test_cli_crt);
400*62c56f98SSadaf Ebrahimi 
401*62c56f98SSadaf Ebrahimi /*
402*62c56f98SSadaf Ebrahimi  *
403*62c56f98SSadaf Ebrahimi  * Lists of certificates
404*62c56f98SSadaf Ebrahimi  *
405*62c56f98SSadaf Ebrahimi  */
406*62c56f98SSadaf Ebrahimi 
407*62c56f98SSadaf Ebrahimi /* List of CAs in PEM or DER, depending on config */
408*62c56f98SSadaf Ebrahimi const char *mbedtls_test_cas[] = {
409*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_MD_CAN_SHA1)
410*62c56f98SSadaf Ebrahimi     mbedtls_test_ca_crt_rsa_sha1,
411*62c56f98SSadaf Ebrahimi #endif
412*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_MD_CAN_SHA256)
413*62c56f98SSadaf Ebrahimi     mbedtls_test_ca_crt_rsa_sha256,
414*62c56f98SSadaf Ebrahimi #endif
415*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_PK_CAN_ECDSA_SOME)
416*62c56f98SSadaf Ebrahimi     mbedtls_test_ca_crt_ec,
417*62c56f98SSadaf Ebrahimi #endif
418*62c56f98SSadaf Ebrahimi     NULL
419*62c56f98SSadaf Ebrahimi };
420*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cas_len[] = {
421*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_MD_CAN_SHA1)
422*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_crt_rsa_sha1),
423*62c56f98SSadaf Ebrahimi #endif
424*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_MD_CAN_SHA256)
425*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_crt_rsa_sha256),
426*62c56f98SSadaf Ebrahimi #endif
427*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_PK_CAN_ECDSA_SOME)
428*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_crt_ec),
429*62c56f98SSadaf Ebrahimi #endif
430*62c56f98SSadaf Ebrahimi     0
431*62c56f98SSadaf Ebrahimi };
432*62c56f98SSadaf Ebrahimi 
433*62c56f98SSadaf Ebrahimi /* List of all available CA certificates in DER format */
434*62c56f98SSadaf Ebrahimi const unsigned char *mbedtls_test_cas_der[] = {
435*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_RSA_C)
436*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_MD_CAN_SHA256)
437*62c56f98SSadaf Ebrahimi     mbedtls_test_ca_crt_rsa_sha256_der,
438*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_MD_CAN_SHA256 */
439*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_MD_CAN_SHA1)
440*62c56f98SSadaf Ebrahimi     mbedtls_test_ca_crt_rsa_sha1_der,
441*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_MD_CAN_SHA1 */
442*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_RSA_C */
443*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_PK_CAN_ECDSA_SOME)
444*62c56f98SSadaf Ebrahimi     mbedtls_test_ca_crt_ec_der,
445*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_PK_CAN_ECDSA_SOME */
446*62c56f98SSadaf Ebrahimi     NULL
447*62c56f98SSadaf Ebrahimi };
448*62c56f98SSadaf Ebrahimi 
449*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cas_der_len[] = {
450*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_RSA_C)
451*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_MD_CAN_SHA256)
452*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_crt_rsa_sha256_der),
453*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_MD_CAN_SHA256 */
454*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_MD_CAN_SHA1)
455*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_crt_rsa_sha1_der),
456*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_MD_CAN_SHA1 */
457*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_RSA_C */
458*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_PK_CAN_ECDSA_SOME)
459*62c56f98SSadaf Ebrahimi     sizeof(mbedtls_test_ca_crt_ec_der),
460*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_PK_CAN_ECDSA_SOME */
461*62c56f98SSadaf Ebrahimi     0
462*62c56f98SSadaf Ebrahimi };
463*62c56f98SSadaf Ebrahimi 
464*62c56f98SSadaf Ebrahimi /* Concatenation of all available CA certificates in PEM format */
465*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_PEM_PARSE_C)
466*62c56f98SSadaf Ebrahimi const char mbedtls_test_cas_pem[] =
467*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_RSA_C)
468*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_MD_CAN_SHA256)
469*62c56f98SSadaf Ebrahimi     TEST_CA_CRT_RSA_SHA256_PEM
470*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_MD_CAN_SHA256 */
471*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_MD_CAN_SHA1)
472*62c56f98SSadaf Ebrahimi     TEST_CA_CRT_RSA_SHA1_PEM
473*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_MD_CAN_SHA1 */
474*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_RSA_C */
475*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_PK_CAN_ECDSA_SOME)
476*62c56f98SSadaf Ebrahimi     TEST_CA_CRT_EC_PEM
477*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_PK_CAN_ECDSA_SOME */
478*62c56f98SSadaf Ebrahimi     "";
479*62c56f98SSadaf Ebrahimi const size_t mbedtls_test_cas_pem_len = sizeof(mbedtls_test_cas_pem);
480*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_PEM_PARSE_C */
481