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