2 * Copyright (c) 2015 - 2021 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License
17 * @file test-certs.cpp
18 * @author Maciej J. Karpiuk (m.karpiuk2@samsung.com)
24 #include <openssl/pem.h>
25 #include <openssl/bio.h>
26 #include <openssl/x509.h>
27 #include <test-certs.h>
28 #include <dpl/test/test_runner.h>
29 #include <dpl/test/test_runner_child.h>
36 enum RawCertificateID {
38 TEST_ROOT_CA = 0, // TEST_ROOT_CA, expires 2035
39 TEST_IM_CA, // TEST_IM_CA, signed by TEST_ROOT_CA, expires 2035
40 TEST_LEAF, // TEST_LEAF, signed by TEST_IM_CA, expires 2035
43 BALTIMORE_CYBER_TRUST_ROOT, // Baltimore CyberTrust Root, (root CA), expires May 13, 2025
44 MS_RSA_TLS_CA_01, // Microsoft RSA TLS CA 01, signed by Baltimore CyberTrust Root,
45 // expires Oct 8, 2024
46 MICROSOFT_COM, // www.microsoft.com, signed by Microsoft RSA TLS CA 01,
47 // expires Jul 28, 2022
49 // ocsp available chain on third party
50 MS_RSA_TLS_CA_02, // Microsoft RSA TLS CA 02, signed by Baltimore CyberTrust Root,
52 BING_COM, // www.bing.com, signed by Microsoft RSA TLS CA 02,
53 // expires Mar 30 2022,
55 // footer - last element in the set
68 TestCert() : valid(UNKNOWN) {}
71 CKM::CertificateShPtr certPtr;
75 typedef map<RawCertificateID, TestCert> CertMap;
77 CKM::CertificateShPtr createCert(const string& cert) {
78 CKM::RawBuffer buffer_cert(cert.begin(), cert.end());
79 CKM::CertificateShPtr cptr = CKM::Certificate::create(buffer_cert, CKM::DataFormat::FORM_PEM);
83 RawCertificateID toRawCertificateID(certificateID id)
86 case certificateID::TEST_ROOT_CA: return RawCertificateID::TEST_ROOT_CA;
87 case certificateID::TEST_IM_CA: return RawCertificateID::TEST_IM_CA;
88 case certificateID::TEST_LEAF: return RawCertificateID::TEST_LEAF;
90 case certificateID::THIRD_PARTY_ROOT_CA: return RawCertificateID::BALTIMORE_CYBER_TRUST_ROOT;
91 case certificateID::THIRD_PARTY_IM_CA: return RawCertificateID::MS_RSA_TLS_CA_01;
92 case certificateID::THIRD_PARTY_LEAF: return RawCertificateID::MICROSOFT_COM;
94 case certificateID::OCSP_AVAILABLE_IM: return RawCertificateID::MS_RSA_TLS_CA_02;
95 case certificateID::OCSP_AVAILABLE_LEAF: return RawCertificateID::BING_COM;
97 case certificateID::NO_CERT: return RawCertificateID::NO_CERT;
98 default: throw std::invalid_argument("Invalid raw certificat ID!");
102 CertMap initializeTestCerts()
106 // TEST_ROOT_CA, expires 2035
108 std::string raw_base64 = std::string(
109 "-----BEGIN CERTIFICATE-----\n"
110 "MIIDnzCCAoegAwIBAgIJAMH/ADkC5YSTMA0GCSqGSIb3DQEBBQUAMGYxCzAJBgNV\n"
111 "BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMQ0wCwYDVQQKDARBQ01FMRAwDgYD\n"
112 "VQQLDAdUZXN0aW5nMSEwHwYDVQQDDBhUZXN0IHJvb3QgY2EgY2VydGlmaWNhdGUw\n"
113 "HhcNMTQxMjMwMTcyMTUyWhcNMjQxMjI3MTcyMTUyWjBmMQswCQYDVQQGEwJBVTET\n"
114 "MBEGA1UECAwKU29tZS1TdGF0ZTENMAsGA1UECgwEQUNNRTEQMA4GA1UECwwHVGVz\n"
115 "dGluZzEhMB8GA1UEAwwYVGVzdCByb290IGNhIGNlcnRpZmljYXRlMIIBIjANBgkq\n"
116 "hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0EJRdUtd2th0vTVF7QxvDKzyFCF3w9vC\n"
117 "9IDE/Yr12w+a9jd0s7/eG96qTHIYffS3B7x2MB+d4n+SR3W0qmYh7xk8qfEgH3da\n"
118 "eDoV59IZ9r543KM+g8jm6KffYGX1bIJVVY5OhBRbO9nY6byYpd5kbCIUB6dCf7/W\n"
119 "rQl1aIdLGFIegAzPGFPXDcU6F192686x54bxt/itMX4agHJ9ZC/rrTBIZghVsjJo\n"
120 "5/AH5WZpasv8sfrGiiohAxtieoYoJkv5MOYP4/2lPlOY+Cgw1Yoz+HHv31AllgFs\n"
121 "BquBb/kJVmCCNsAOcnvQzTZUsW/TXz9G2nwRdqI1nSy2JvVjZGsqGQIDAQABo1Aw\n"
122 "TjAdBgNVHQ4EFgQUt6pkzFt1PZlfYRL/HGnufF4frdwwHwYDVR0jBBgwFoAUt6pk\n"
123 "zFt1PZlfYRL/HGnufF4frdwwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOC\n"
124 "AQEAld7Qwq0cdzDQ51w1RVLwTR8Oy25PB3rzwEHcSGJmdqlMi3xOdaz80S1R1BBX\n"
125 "ldvGBG5Tn0vT7xSuhmSgI2/HnBpy9ocHVOmhtNB4473NieEpfTYrnGXrFxu46Wus\n"
126 "9m/ZnugcQ2G6C54A/NFtvgLmaC8uH8M7gKdS6uYUwJFQEofkjmd4UpOYSqmcRXhS\n"
127 "Jzd5FYFWkJhKJYp3nlENSOD8CUFFVGekm05nFN2gRVc/qaqQkEX77+XYvhodLRsV\n"
128 "qMn7nf7taidDKLO2T4bhujztnTYOhhaXKgPy7AtZ28N2wvX96VyAPB/vrchGmyBK\n"
129 "kOg11TpPdNDkhb1J4ZCh2gupDg==\n"
130 "-----END CERTIFICATE-----\n");
131 cm[RawCertificateID::TEST_ROOT_CA].raw_base64 = raw_base64;
132 cm[RawCertificateID::TEST_ROOT_CA].certPtr = createCert(raw_base64);
135 // TEST_IM_CA, signed by TEST_ROOT_CA, expires 2035
137 std::string raw_base64 = std::string(
138 "-----BEGIN CERTIFICATE-----\n"
139 "MIIDljCCAn6gAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwZjELMAkGA1UEBhMCQVUx\n"
140 "EzARBgNVBAgMClNvbWUtU3RhdGUxDTALBgNVBAoMBEFDTUUxEDAOBgNVBAsMB1Rl\n"
141 "c3RpbmcxITAfBgNVBAMMGFRlc3Qgcm9vdCBjYSBjZXJ0aWZpY2F0ZTAeFw0xNTAx\n"
142 "MTYxNjQ1MzRaFw0zNTAxMTExNjQ1MzRaMGQxCzAJBgNVBAYTAkFVMRMwEQYDVQQI\n"
143 "DApTb21lLVN0YXRlMQ0wCwYDVQQKDARBQ01FMRAwDgYDVQQLDAdUZXN0aW5nMR8w\n"
144 "HQYDVQQDDBZUZXN0IElNIENBIGNlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEF\n"
145 "AAOCAQ8AMIIBCgKCAQEAzmBF78qClgoKfnLAncMXZwZ14TW+5kags1+QCYeg3c7j\n"
146 "L9+RvDxIaX2tKf1sukJcwQfYqUlQkwt+58LMOb2ORtkpj8Or6WCWCZ0BzneT8ug7\n"
147 "nxJT4m9+bohMF0JoKjjB2H4KNMHamLIwUxRKt6nyfk81kVhJOi2vzzxd+UCPi6Pc\n"
148 "UAbJNH48eNgOIg55nyFovVzYj8GIo/9GvHJj83PPa/KlJZ+Z1qZASZZ/VYorplVT\n"
149 "thsHXKfejhFy5YJ9t7n/vyAQsyBsagZsvX19xnH41fbYXHKf8UbXG23rNaZlchs6\n"
150 "XJVLQdzOpj3WTj/lCocVHqLaZISLhNQ3aI7kUBUdiwIDAQABo1AwTjAdBgNVHQ4E\n"
151 "FgQUoCYNaCBP4jl/3SYQuK8Ka+6i3QEwHwYDVR0jBBgwFoAUt6pkzFt1PZlfYRL/\n"
152 "HGnufF4frdwwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAjRzWiD97\n"
153 "Htv4Kxpm3P+C+xP9AEteCJfO+7p8MWgtWEJOknJyt55zeKS2JwZIq57KcbqD8U7v\n"
154 "vAUx1ymtUhlFPFd7J1mJ3pou+3aFYmGShYhGHpbrmUwjp7HVP588jrW1NoZVHdMc\n"
155 "4OgJWFrViXeu9+maIcekjMB/+9Y0dUgQuK5ZuT5H/Jwet7Th/o9uufTUZjBzRvrB\n"
156 "pbXgQpqgME2av4Q/6LuldPCTHLtWXgFUU2R+yCGmuGilvhFJnKoQryAbYnIQNWE8\n"
157 "SLoHQ9s1i7Zyb7HU6UAaqMOz15LBkyAqtNyJcO2p7Q/p5YK0xfD4xisI5qXucqVm\n"
159 "-----END CERTIFICATE-----\n");
160 cm[RawCertificateID::TEST_IM_CA].raw_base64 = raw_base64;
161 cm[RawCertificateID::TEST_IM_CA].certPtr = createCert(raw_base64);
164 // TEST_LEAF, signed by TEST_IM_CA, expires 2035
166 std::string raw_base64 = std::string(
167 "-----BEGIN CERTIFICATE-----\n"
168 "MIIDOzCCAiMCAQEwDQYJKoZIhvcNAQEFBQAwZDELMAkGA1UEBhMCQVUxEzARBgNV\n"
169 "BAgMClNvbWUtU3RhdGUxDTALBgNVBAoMBEFDTUUxEDAOBgNVBAsMB1Rlc3Rpbmcx\n"
170 "HzAdBgNVBAMMFlRlc3QgSU0gQ0EgY2VydGlmaWNhdGUwHhcNMTUwMTE2MTY0ODE0\n"
171 "WhcNMzUwMTExMTY0ODE0WjBjMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1T\n"
172 "dGF0ZTENMAsGA1UECgwEQUNNRTEQMA4GA1UECwwHVGVzdGluZzEeMBwGA1UEAwwV\n"
173 "VGVzdCBsZWFmIGNlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\n"
174 "CgKCAQEAzTdDIa2tDmRxFnIgiG+mBz8GoSVODs0ImNQGbqj+pLhBOFRH8fsah4Jl\n"
175 "z5YF9KwhMVLknnHGFLE/Nb7Ac35kEzhMQMpTRxohW83oxw3eZ8zN/FBoKqg4qHRq\n"
176 "QR8kS10YXTgrBR0ex/Vp+OUKEw6h7yL2r4Tpvrn9/qHwsxtLxqWbDIVf1O9b1Lfc\n"
177 "bllYMdmV5E62yN5tcwrDP8gvHjFnVeLzrG8wTpc9FR90/0Jkfp5jAJcArOBLrT0E\n"
178 "4VRqs+4HuwT8jAwFAmNnc7IYX5qSjtSWkmmHe73K/lzB+OiI0JEc/3eWUTWqwTSk\n"
179 "4tNCiQGBKJ39LXPTBBJdzmxVH7CUDQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQAp\n"
180 "UdDOGu3hNiG+Vn10aQ6B1ZmOj3t+45gUV3sC+y8hB8EK1g4P5Ke9bVDts0T5eOnj\n"
181 "CSc+6VoND5O4adI0IFFRFljHNVnvjeosHfUZNnowsmA2ptQBtC1g5ZKRvKXlkC5/\n"
182 "i5BGgRqPFA7y9WB9Y05MrJHf3E+Oz/RBsLeeNiNN+rF5X1vYExvGHpo0M0zS0ze9\n"
183 "HtC0aOy8ocsTrQkf3ceHTAXx2i8ftoSSD4klojtWFpWMrNQa52F7wB9nU6FfKRuF\n"
184 "Zj/T1JkYXKkEwZU6nAR2jdZp3EP9xj3o15V/tyFcXHx6l8NTxn4cJb+Xe4VquQJz\n"
185 "6ON7PVe0ABN/AlwVQiFE\n"
186 "-----END CERTIFICATE-----\n");
187 cm[RawCertificateID::TEST_LEAF].raw_base64 = raw_base64;
188 cm[RawCertificateID::TEST_LEAF].certPtr = createCert(raw_base64);
191 // Baltimore CyberTrust Root, (root CA), expires May 13, 2025
193 std::string raw_base64 = std::string(
194 "-----BEGIN CERTIFICATE-----\n"
195 "MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ\n"
196 "RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD\n"
197 "VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX\n"
198 "DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y\n"
199 "ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy\n"
200 "VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr\n"
201 "mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr\n"
202 "IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK\n"
203 "mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu\n"
204 "XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy\n"
205 "dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye\n"
206 "jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1\n"
207 "BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3\n"
208 "DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92\n"
209 "9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx\n"
210 "jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0\n"
211 "Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz\n"
212 "ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS\n"
213 "R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp\n"
214 "-----END CERTIFICATE-----\n");
215 cm[RawCertificateID::BALTIMORE_CYBER_TRUST_ROOT].raw_base64 = raw_base64;
216 cm[RawCertificateID::BALTIMORE_CYBER_TRUST_ROOT].certPtr = createCert(raw_base64);
219 // Microsoft RSA TLS CA 01, signed by Baltimore CyberTrust Root, expires Oct 8, 2024
221 std::string raw_base64 = std::string(
222 "-----BEGIN CERTIFICATE-----\n"
223 "MIIFWjCCBEKgAwIBAgIQDxSWXyAgaZlP1ceseIlB4jANBgkqhkiG9w0BAQsFADBa\n"
224 "MQswCQYDVQQGEwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJl\n"
225 "clRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTIw\n"
226 "MDcyMTIzMDAwMFoXDTI0MTAwODA3MDAwMFowTzELMAkGA1UEBhMCVVMxHjAcBgNV\n"
227 "BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEgMB4GA1UEAxMXTWljcm9zb2Z0IFJT\n"
228 "QSBUTFMgQ0EgMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqYnfP\n"
229 "mmOyBoTzkDb0mfMUUavqlQo7Rgb9EUEf/lsGWMk4bgj8T0RIzTqk970eouKVuL5R\n"
230 "IMW/snBjXXgMQ8ApzWRJCZbar879BV8rKpHoAW4uGJssnNABf2n17j9TiFy6BWy+\n"
231 "IhVnFILyLNK+W2M3zK9gheiWa2uACKhuvgCca5Vw/OQYErEdG7LBEzFnMzTmJcli\n"
232 "W1iCdXby/vI/OxbfqkKD4zJtm45DJvC9Dh+hpzqvLMiK5uo/+aXSJY+SqhoIEpz+\n"
233 "rErHw+uAlKuHFtEjSeeku8eR3+Z5ND9BSqc6JtLqb0bjOHPm5dSRrgt4nnil75bj\n"
234 "c9j3lWXpBb9PXP9Sp/nPCK+nTQmZwHGjUnqlO9ebAVQD47ZisFonnDAmjrZNVqEX\n"
235 "F3p7laEHrFMxttYuD81BdOzxAbL9Rb/8MeFGQjE2Qx65qgVfhH+RsYuuD9dUw/3w\n"
236 "ZAhq05yO6nk07AM9c+AbNtRoEcdZcLCHfMDcbkXKNs5DJncCqXAN6LhXVERCw/us\n"
237 "G2MmCMLSIx9/kwt8bwhUmitOXc6fpT7SmFvRAtvxg84wUkg4Y/Gx++0j0z6StSeN\n"
238 "0EJz150jaHG6WV4HUqaWTb98Tm90IgXAU4AW2GBOlzFPiU5IY9jt+eXC2Q6yC/Zp\n"
239 "TL1LAcnL3Qa/OgLrHN0wiw1KFGD51WRPQ0Sh7QIDAQABo4IBJTCCASEwHQYDVR0O\n"
240 "BBYEFLV2DDARzseSQk1Mx1wsyKkM6AtkMB8GA1UdIwQYMBaAFOWdWTCCR1jMrPoI\n"
241 "VDaGezq1BE3wMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYI\n"
242 "KwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADA0BggrBgEFBQcBAQQoMCYwJAYI\n"
243 "KwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTA6BgNVHR8EMzAxMC+g\n"
244 "LaArhilodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vT21uaXJvb3QyMDI1LmNybDAq\n"
245 "BgNVHSAEIzAhMAgGBmeBDAECATAIBgZngQwBAgIwCwYJKwYBBAGCNyoBMA0GCSqG\n"
246 "SIb3DQEBCwUAA4IBAQCfK76SZ1vae4qt6P+dTQUO7bYNFUHR5hXcA2D59CJWnEj5\n"
247 "na7aKzyowKvQupW4yMH9fGNxtsh6iJswRqOOfZYC4/giBO/gNsBvwr8uDW7t1nYo\n"
248 "DYGHPpvnpxCM2mYfQFHq576/TmeYu1RZY29C4w8xYBlkAA8mDJfRhMCmehk7cN5F\n"
249 "JtyWRj2cZj/hOoI45TYDBChXpOlLZKIYiG1giY16vhCRi6zmPzEwv+tk156N6cGS\n"
250 "Vm44jTQ/rs1sa0JSYjzUaYngoFdZC4OfxnIkQvUIA4TOFmPzNPEFdjcZsgbeEz4T\n"
251 "cGHTBPK4R28F44qIMCtHRV55VMX53ev6P3hRddJb\n"
252 "-----END CERTIFICATE-----\n"
254 cm[RawCertificateID::MS_RSA_TLS_CA_01].raw_base64 = raw_base64;
255 cm[RawCertificateID::MS_RSA_TLS_CA_01].certPtr = createCert(raw_base64);
258 // www.microsoft.com, signed by Microsoft RSA TLS CA 01, expires Jul 28, 2022
260 std::string raw_base64 = std::string(
261 "-----BEGIN CERTIFICATE-----\n"
262 "MIII9DCCBtygAwIBAgITEgAU8ewjldVv3MTctwAAABTx7DANBgkqhkiG9w0BAQsF\n"
263 "ADBPMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u\n"
264 "MSAwHgYDVQQDExdNaWNyb3NvZnQgUlNBIFRMUyBDQSAwMTAeFw0yMTA3MjgyMTIy\n"
265 "MDZaFw0yMjA3MjgyMTIyMDZaMIGIMQswCQYDVQQGEwJVUzELMAkGA1UECBMCV0Ex\n"
266 "EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv\n"
267 "bjEeMBwGA1UECxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMRowGAYDVQQDExF3d3cu\n"
268 "bWljcm9zb2Z0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMnE\n"
269 "YTuMHAC05tDE3Xeql1wP18DqLF1YZ6z6vsnmS9FQg5HhjYW9d5JEpxldYfA26Rmu\n"
270 "SjzBnPIV6C9TsxSasdijXzMBGBXLMRN1Lqo8t+ULT0JAsmt0TjvhGTk7qAWOxx5W\n"
271 "gbEA+hZP12P1glre2E5LGORyf3/HDDHDJpoyVrJQcXTTxGGFrUaz8BxpSxnk3+p+\n"
272 "/b2hPxO70jt3vqtpgS+dJa9j9CsGm5f6QZdYFCNVL3HNk4ji36dQZd3Z01jjddgn\n"
273 "8eqG220HvEDL+tJY+q9/iz0fLd+rcDO/igCgpEfM3/gmz4b9xUB1MfexdFNX8zxq\n"
274 "7HBedJTQOSrYbcEupCMCAwEAAaOCBI0wggSJMIIBfAYKKwYBBAHWeQIEAgSCAWwE\n"
275 "ggFoAWYAdQApeb7wnjk5IfBWc59jpXflvld9nGAK+PlNXSZcJV3HhAAAAXrvCDQo\n"
276 "AAAEAwBGMEQCIGsG4F9acHkVtLDESPJxtX8xga3P+ib5mF86uhDdHdQyAiAIlmPH\n"
277 "81f0tFDjOT3QypOpS6W95Wv4AB7QpxQPkX5R+wB1AEHIyrHfIkZKEMahOglCh15O\n"
278 "MYsbA+vrS8do8JBilgb2AAABeu8INBYAAAQDAEYwRAIgYLmw/lgwOh/iFUG+ghFb\n"
279 "jH9odXbXMn9pH+6aoOwNpJoCIFOT/s390eZjaTM99x3B+7aF2iah+3NbIVRIO7eU\n"
280 "gCUJAHYARqVV63X6kSAwtaKJafTzfREsQXS+/Um4havy/HD+bUcAAAF67wg0VQAA\n"
281 "BAMARzBFAiEAvkCi3Cm3jnqCQFRVP4cinZcVZbMVsIsCdWq17Ql9W7gCIFsGi8PI\n"
282 "T+LMgAOXRfRyq4o5ffWlrF3RKPjpFm1XmcvaMCcGCSsGAQQBgjcVCgQaMBgwCgYI\n"
283 "KwYBBQUHAwIwCgYIKwYBBQUHAwEwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUI\n"
284 "h9qGdYPu2QGCyYUbgbWeYYX062CBXbn4EIaR0HgCAWQCASUwgYcGCCsGAQUFBwEB\n"
285 "BHsweTBTBggrBgEFBQcwAoZHaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9t\n"
286 "c2NvcnAvTWljcm9zb2Z0JTIwUlNBJTIwVExTJTIwQ0ElMjAwMS5jcnQwIgYIKwYB\n"
287 "BQUHMAGGFmh0dHA6Ly9vY3NwLm1zb2NzcC5jb20wHQYDVR0OBBYEFAkmLKnc/2OR\n"
288 "QOdYZ+IIP3T26vFlMA4GA1UdDwEB/wQEAwIEsDCBmQYDVR0RBIGRMIGOghVwcml2\n"
289 "YWN5Lm1pY3Jvc29mdC5jb22CEWMucy1taWNyb3NvZnQuY29tgg1taWNyb3NvZnQu\n"
290 "Y29tghFpLnMtbWljcm9zb2Z0LmNvbYIYc3RhdGljdmlldy5taWNyb3NvZnQuY29t\n"
291 "ghF3d3cubWljcm9zb2Z0LmNvbYITd3d3cWEubWljcm9zb2Z0LmNvbTCBsAYDVR0f\n"
292 "BIGoMIGlMIGioIGfoIGchk1odHRwOi8vbXNjcmwubWljcm9zb2Z0LmNvbS9wa2kv\n"
293 "bXNjb3JwL2NybC9NaWNyb3NvZnQlMjBSU0ElMjBUTFMlMjBDQSUyMDAxLmNybIZL\n"
294 "aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9tc2NvcnAvY3JsL01pY3Jvc29m\n"
295 "dCUyMFJTQSUyMFRMUyUyMENBJTIwMDEuY3JsMFcGA1UdIARQME4wQgYJKwYBBAGC\n"
296 "NyoBMDUwMwYIKwYBBQUHAgEWJ2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kv\n"
297 "bXNjb3JwL2NwczAIBgZngQwBAgIwHwYDVR0jBBgwFoAUtXYMMBHOx5JCTUzHXCzI\n"
298 "qQzoC2QwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMA0GCSqGSIb3DQEB\n"
299 "CwUAA4ICAQAVMIWmZCVQqfj7bJx9qruDL8/ylrr3axGTW38+QbP7a+705e8piKYA\n"
300 "oSLpwDnWs00JzLLfe55xE7b3veY5q88ZAcQfB34tvewp+2rYvTcvPq641TXloQlJ\n"
301 "an/90VgkCa2YsbSwWg4uldv0fjvbdZmRvm/fofrR45ySK8KK1SsNJ1Aa/3wuNCyj\n"
302 "L03dT3tf2pDymMaNj3PamyjClHsdYcWop3ZBbM/PiL0pY/a0YsqIUsUkpK93yC4E\n"
303 "+IkZkQDEEAeZHzoHlZv2moJSKL357z1wqS2tDTNGpX8NBvudKkUlnShJfu6MFn1m\n"
304 "vXONhYfpYpJ5t0DxFwhahPS7MKmp/sz7A5fO8b/nvyvwohvHHlI502Np7LdRWE1J\n"
305 "7bNmOcCK/gGVWU2VtZUyhJwGN104Aba61Jn8+mds8JagLPAwiB2Si7M1sfKHpacC\n"
306 "GTeO2N8v8WaBQw/hFLnXlV6c8C8QrYLWLxlmM+6pAlm9fHVU4RESJFseMJiJ66US\n"
307 "bKVIwfysnXZseCb5gbVI8v3d/qpPZSkpKfLs47spTDVKEqSBr8a2evyRJFzIZZ0v\n"
308 "MW9by1fTuByXk82Uyz6/MQ4x0Z/zflGSOyozpZFli7FMFbh4+Fpg6s5RgWVVep96\n"
309 "h4MER2f+ulxJ3j9wUxCa/BR6St/Ck6ZO+FL676uHMx3NMrrSVltSuA==\n"
310 "-----END CERTIFICATE-----\n"
312 cm[RawCertificateID::MICROSOFT_COM].raw_base64 = raw_base64;
313 cm[RawCertificateID::MICROSOFT_COM].certPtr = createCert(raw_base64);
316 // Microsoft RSA TLS CA 01, signed by Baltimore CyberTrust Root, expires 8 Oct 2024
317 // This is the same as IM for microsoft.com currently,
318 // not removing as it's not always like that.
320 std::string raw_base64(
321 "-----BEGIN CERTIFICATE-----\n"
322 "MIIFWjCCBEKgAwIBAgIQDxSWXyAgaZlP1ceseIlB4jANBgkqhkiG9w0BAQsFADBa\n"
323 "MQswCQYDVQQGEwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJl\n"
324 "clRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTIw\n"
325 "MDcyMTIzMDAwMFoXDTI0MTAwODA3MDAwMFowTzELMAkGA1UEBhMCVVMxHjAcBgNV\n"
326 "BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEgMB4GA1UEAxMXTWljcm9zb2Z0IFJT\n"
327 "QSBUTFMgQ0EgMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqYnfP\n"
328 "mmOyBoTzkDb0mfMUUavqlQo7Rgb9EUEf/lsGWMk4bgj8T0RIzTqk970eouKVuL5R\n"
329 "IMW/snBjXXgMQ8ApzWRJCZbar879BV8rKpHoAW4uGJssnNABf2n17j9TiFy6BWy+\n"
330 "IhVnFILyLNK+W2M3zK9gheiWa2uACKhuvgCca5Vw/OQYErEdG7LBEzFnMzTmJcli\n"
331 "W1iCdXby/vI/OxbfqkKD4zJtm45DJvC9Dh+hpzqvLMiK5uo/+aXSJY+SqhoIEpz+\n"
332 "rErHw+uAlKuHFtEjSeeku8eR3+Z5ND9BSqc6JtLqb0bjOHPm5dSRrgt4nnil75bj\n"
333 "c9j3lWXpBb9PXP9Sp/nPCK+nTQmZwHGjUnqlO9ebAVQD47ZisFonnDAmjrZNVqEX\n"
334 "F3p7laEHrFMxttYuD81BdOzxAbL9Rb/8MeFGQjE2Qx65qgVfhH+RsYuuD9dUw/3w\n"
335 "ZAhq05yO6nk07AM9c+AbNtRoEcdZcLCHfMDcbkXKNs5DJncCqXAN6LhXVERCw/us\n"
336 "G2MmCMLSIx9/kwt8bwhUmitOXc6fpT7SmFvRAtvxg84wUkg4Y/Gx++0j0z6StSeN\n"
337 "0EJz150jaHG6WV4HUqaWTb98Tm90IgXAU4AW2GBOlzFPiU5IY9jt+eXC2Q6yC/Zp\n"
338 "TL1LAcnL3Qa/OgLrHN0wiw1KFGD51WRPQ0Sh7QIDAQABo4IBJTCCASEwHQYDVR0O\n"
339 "BBYEFLV2DDARzseSQk1Mx1wsyKkM6AtkMB8GA1UdIwQYMBaAFOWdWTCCR1jMrPoI\n"
340 "VDaGezq1BE3wMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYI\n"
341 "KwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADA0BggrBgEFBQcBAQQoMCYwJAYI\n"
342 "KwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTA6BgNVHR8EMzAxMC+g\n"
343 "LaArhilodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vT21uaXJvb3QyMDI1LmNybDAq\n"
344 "BgNVHSAEIzAhMAgGBmeBDAECATAIBgZngQwBAgIwCwYJKwYBBAGCNyoBMA0GCSqG\n"
345 "SIb3DQEBCwUAA4IBAQCfK76SZ1vae4qt6P+dTQUO7bYNFUHR5hXcA2D59CJWnEj5\n"
346 "na7aKzyowKvQupW4yMH9fGNxtsh6iJswRqOOfZYC4/giBO/gNsBvwr8uDW7t1nYo\n"
347 "DYGHPpvnpxCM2mYfQFHq576/TmeYu1RZY29C4w8xYBlkAA8mDJfRhMCmehk7cN5F\n"
348 "JtyWRj2cZj/hOoI45TYDBChXpOlLZKIYiG1giY16vhCRi6zmPzEwv+tk156N6cGS\n"
349 "Vm44jTQ/rs1sa0JSYjzUaYngoFdZC4OfxnIkQvUIA4TOFmPzNPEFdjcZsgbeEz4T\n"
350 "cGHTBPK4R28F44qIMCtHRV55VMX53ev6P3hRddJb\n"
351 "-----END CERTIFICATE-----\n"
353 cm[RawCertificateID::MS_RSA_TLS_CA_02].raw_base64 = raw_base64;
354 cm[RawCertificateID::MS_RSA_TLS_CA_02].certPtr = createCert(raw_base64);
357 // www.bing.com, signed by Microsoft RSA TLS CA 01, expires Jun 22 2022
359 std::string raw_base64(
360 "-----BEGIN CERTIFICATE-----\n"
361 "MIINWjCCC0KgAwIBAgITEgAfcvcKCqFVliq5ywAAAB9y9zANBgkqhkiG9w0BAQsF\n"
362 "ADBPMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u\n"
363 "MSAwHgYDVQQDExdNaWNyb3NvZnQgUlNBIFRMUyBDQSAwMTAeFw0yMTEyMjIwMTM0\n"
364 "MDdaFw0yMjA2MjIwMTM0MDdaMBcxFTATBgNVBAMTDHd3dy5iaW5nLmNvbTCCASIw\n"
365 "DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJYbrxy4NFq3iQ0ZXASXsYp02tLG\n"
366 "hKK54sWr4QFxIkYJZQX9/xBdwQMfYSdH793Zdft/6tn0kRk9W0aDLUE/5Iw1perB\n"
367 "YBFPflSfLp1JGj5Btrr6D+5VSBBSAx9Mq/taAUTlmLVnTJHamJt+yRbiiLn6+wIf\n"
368 "6P8hw2/Bae7bX5COiwL5RWyoMJz0LxKTWFLax4fx3wuFRKinBVNJyhommtJDXlG6\n"
369 "4UhXkwgbf4mdfI1bQGuzurOJZ8Mv17MIQilT+gBnF2b7Kx5H+LxJF3gXbJjAfoPF\n"
370 "98NUtRCqQYzAIA3JrHKxThi2ALDmloejGTXuD9rllv8DaETPrch0M9zU0s0CAwEA\n"
371 "AaOCCWUwgglhMIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgAdgApeb7wnjk5IfBW\n"
372 "c59jpXflvld9nGAK+PlNXSZcJV3HhAAAAX3fz2fZAAAEAwBHMEUCIQCCUdOep2CF\n"
373 "1UKCVaMAp0XKoeyXLCY+dLx9naojXnc7gQIgFdLQMXazPR1jezRCdTCQPK8gfWTQ\n"
374 "gpxy0+jLuPrAvEoAdwBVgdTCFpA2AUrqC5tXPFPwwOQ4eHAlCBcvo6odBxPTDAAA\n"
375 "AX3fz2jrAAAEAwBIMEYCIQDEOCKOre6gyuDKiUgSgReIGIY0SYicpmTkfWvvRyJW\n"
376 "ygIhAL2tnClNihUTXxdkFp6PGdglKRyarYVObk18jNl9sbZtAHUAUaOw9f0BeZxW\n"
377 "bbg3eI8MpHrMGyfL956IQpoN/tSLBeUAAAF9389o8gAABAMARjBEAiB3xhpmaVCS\n"
378 "OqL/M40nsRW1qiTjpgJlHrfaBumUVpsjkgIgIWTbLmuAVkC4hzsF5y9T7ntMAI39\n"
379 "GYRstybaGUvcQeMwJwYJKwYBBAGCNxUKBBowGDAKBggrBgEFBQcDATAKBggrBgEF\n"
380 "BQcDAjA+BgkrBgEEAYI3FQcEMTAvBicrBgEEAYI3FQiH2oZ1g+7ZAYLJhRuBtZ5h\n"
381 "hfTrYIFdhYaOQYfCmFACAWQCAScwgYcGCCsGAQUFBwEBBHsweTBTBggrBgEFBQcw\n"
382 "AoZHaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9tc2NvcnAvTWljcm9zb2Z0\n"
383 "JTIwUlNBJTIwVExTJTIwQ0ElMjAwMS5jcnQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9v\n"
384 "Y3NwLm1zb2NzcC5jb20wHQYDVR0OBBYEFJ75gKW07KZZzv6xGyHoaaoBVHztMA4G\n"
385 "A1UdDwEB/wQEAwIEsDCCBW0GA1UdEQSCBWQwggVgggx3d3cuYmluZy5jb22CEGRp\n"
386 "Y3QuYmluZy5jb20uY26CEyoucGxhdGZvcm0uYmluZy5jb22CCiouYmluZy5jb22C\n"
387 "CGJpbmcuY29tghZpZW9ubGluZS5taWNyb3NvZnQuY29tghMqLndpbmRvd3NzZWFy\n"
388 "Y2guY29tghljbi5pZW9ubGluZS5taWNyb3NvZnQuY29tghEqLm9yaWdpbi5iaW5n\n"
389 "LmNvbYINKi5tbS5iaW5nLm5ldIIOKi5hcGkuYmluZy5jb22CGGVjbi5kZXYudmly\n"
390 "dHVhbGVhcnRoLm5ldIINKi5jbi5iaW5nLm5ldIINKi5jbi5iaW5nLmNvbYIQc3Ns\n"
391 "LWFwaS5iaW5nLmNvbYIQc3NsLWFwaS5iaW5nLm5ldIIOKi5hcGkuYmluZy5uZXSC\n"
392 "DiouYmluZ2FwaXMuY29tgg9iaW5nc2FuZGJveC5jb22CFmZlZWRiYWNrLm1pY3Jv\n"
393 "c29mdC5jb22CG2luc2VydG1lZGlhLmJpbmcub2ZmaWNlLm5ldIIOci5iYXQuYmlu\n"
394 "Zy5jb22CECouci5iYXQuYmluZy5jb22CEiouZGljdC5iaW5nLmNvbS5jboIPKi5k\n"
395 "aWN0LmJpbmcuY29tgg4qLnNzbC5iaW5nLmNvbYIQKi5hcHBleC5iaW5nLmNvbYIW\n"
396 "Ki5wbGF0Zm9ybS5jbi5iaW5nLmNvbYINd3AubS5iaW5nLmNvbYIMKi5tLmJpbmcu\n"
397 "Y29tgg9nbG9iYWwuYmluZy5jb22CEXdpbmRvd3NzZWFyY2guY29tgg5zZWFyY2gu\n"
398 "bXNuLmNvbYIRKi5iaW5nc2FuZGJveC5jb22CGSouYXBpLnRpbGVzLmRpdHUubGl2\n"
399 "ZS5jb22CDyouZGl0dS5saXZlLmNvbYIYKi50MC50aWxlcy5kaXR1LmxpdmUuY29t\n"
400 "ghgqLnQxLnRpbGVzLmRpdHUubGl2ZS5jb22CGCoudDIudGlsZXMuZGl0dS5saXZl\n"
401 "LmNvbYIYKi50My50aWxlcy5kaXR1LmxpdmUuY29tghUqLnRpbGVzLmRpdHUubGl2\n"
402 "ZS5jb22CCzNkLmxpdmUuY29tghNhcGkuc2VhcmNoLmxpdmUuY29tghRiZXRhLnNl\n"
403 "YXJjaC5saXZlLmNvbYIVY253ZWIuc2VhcmNoLmxpdmUuY29tggxkZXYubGl2ZS5j\n"
404 "b22CDWRpdHUubGl2ZS5jb22CEWZhcmVjYXN0LmxpdmUuY29tgg5pbWFnZS5saXZl\n"
405 "LmNvbYIPaW1hZ2VzLmxpdmUuY29tghFsb2NhbC5saXZlLmNvbS5hdYIUbG9jYWxz\n"
406 "ZWFyY2gubGl2ZS5jb22CFGxzNGQuc2VhcmNoLmxpdmUuY29tgg1tYWlsLmxpdmUu\n"
407 "Y29tghFtYXBpbmRpYS5saXZlLmNvbYIObG9jYWwubGl2ZS5jb22CDW1hcHMubGl2\n"
408 "ZS5jb22CEG1hcHMubGl2ZS5jb20uYXWCD21pbmRpYS5saXZlLmNvbYINbmV3cy5s\n"
409 "aXZlLmNvbYIcb3JpZ2luLmNud2ViLnNlYXJjaC5saXZlLmNvbYIWcHJldmlldy5s\n"
410 "b2NhbC5saXZlLmNvbYIPc2VhcmNoLmxpdmUuY29tghJ0ZXN0Lm1hcHMubGl2ZS5j\n"
411 "b22CDnZpZGVvLmxpdmUuY29tgg92aWRlb3MubGl2ZS5jb22CFXZpcnR1YWxlYXJ0\n"
412 "aC5saXZlLmNvbYIMd2FwLmxpdmUuY29tghJ3ZWJtYXN0ZXIubGl2ZS5jb22CE3dl\n"
413 "Ym1hc3RlcnMubGl2ZS5jb22CFXd3dy5sb2NhbC5saXZlLmNvbS5hdYIUd3d3Lm1h\n"
414 "cHMubGl2ZS5jb20uYXUwgbAGA1UdHwSBqDCBpTCBoqCBn6CBnIZNaHR0cDovL21z\n"
415 "Y3JsLm1pY3Jvc29mdC5jb20vcGtpL21zY29ycC9jcmwvTWljcm9zb2Z0JTIwUlNB\n"
416 "JTIwVExTJTIwQ0ElMjAwMS5jcmyGS2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9w\n"
417 "a2kvbXNjb3JwL2NybC9NaWNyb3NvZnQlMjBSU0ElMjBUTFMlMjBDQSUyMDAxLmNy\n"
418 "bDBXBgNVHSAEUDBOMEIGCSsGAQQBgjcqATA1MDMGCCsGAQUFBwIBFidodHRwOi8v\n"
419 "d3d3Lm1pY3Jvc29mdC5jb20vcGtpL21zY29ycC9jcHMwCAYGZ4EMAQIBMB8GA1Ud\n"
420 "IwQYMBaAFLV2DDARzseSQk1Mx1wsyKkM6AtkMB0GA1UdJQQWMBQGCCsGAQUFBwMB\n"
421 "BggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEANf9lCvl9aj7qHuAPleyuDr0M\n"
422 "9D2LMjeim+ooL7QnVxw5cusBIfctG0qBX2PEe+++ViUigGg0v6QKasJ7XQ3hs6kf\n"
423 "TAHMTXgiXq/NpWeWieEWVdrgSoihPmZbcmvD6wCXgR4kAGReU6yKPpi66dSSU5yl\n"
424 "c2gC+6+ooy46LPSe3nopA2HvZ3A2uvXY3TmXKX9K2CxpsHUoBSLersdI+gcSUZhs\n"
425 "qnzpW07AuoMuquzC2nUmb8HFNKqkqQ4tgluHtU506j/sgnnQzTUt55nTk1JhwCiB\n"
426 "ltfrMSGz+GhrLgO8r/DiMF8mPo+y0zsoYU9H1doUMmddyoI05Z+IjhzwI0iRqYlT\n"
427 "syef//6tnVqO/Oarn/e5ZK8k8UWOGs52c2pAJMjIP6dplfsrwc7jb3TbiM26qGpv\n"
428 "pf6nrLg3lqhLpzuPIzfX+Ped3hsWAqm/3k/An3kU+Bh3Y8e6oExgLeXbWp1vm24N\n"
429 "gFhWuODPPSC1mEMvUR6ZUycgwU7XShqGeYtKzX7dt9EH+OhAXq//1EbPZ/x41o5u\n"
430 "AiJBXLjYvx6tNfQsG9IAA5YjWVuju/xLXsJWgTVCk7hgu12QFR+9L59o5okwxFu5\n"
431 "D2KgZb2BPZFGcJ5s3B0QZWKEqDB5yPDmo1RmBDbxdrJvOiwUKY7JVR8tqll5unz8\n"
432 "pwWa/hYZWHYfUK0kFkM=\n"
433 "-----END CERTIFICATE-----\n"
435 cm[RawCertificateID::BING_COM].raw_base64 = raw_base64;
436 cm[RawCertificateID::BING_COM].certPtr = createCert(raw_base64);
442 CertMap TEST_CERTS = initializeTestCerts();
444 } // namespace TestData::anonymous
446 void checkCertificateValidity(std::map<RawCertificateID, TestCert>::iterator& it)
448 if (it->second.valid == TestCert::UNKNOWN)
450 auto buff = BIO_new(BIO_s_mem());
451 BIO_write(buff, it->second.raw_base64.c_str(), it->second.raw_base64.size());
453 X509* x509 = PEM_read_bio_X509(buff, nullptr, nullptr, nullptr);
456 RUNNER_ASSERT_MSG(x509 != NULL, "Test certificate " << it->first << " can't be parsed");
458 if (X509_cmp_current_time(X509_get_notBefore(x509)) > 0)
459 it->second.valid = TestCert::NOT_YET_VALID;
460 else if (X509_cmp_current_time(X509_get_notAfter(x509)) < 0)
461 it->second.valid = TestCert::EXPIRED;
463 it->second.valid = TestCert::VALID;
468 switch (it->second.valid)
470 case TestCert::NOT_YET_VALID:
472 "Test certificate " << it->first <<
473 " is not yet valid. Check the certificate and the system date.");
475 case TestCert::EXPIRED:
477 "Test certificate " << it->first <<
478 " has expired. Check the certificate and the system date.");
485 std::string getTestCertificateBase64(certificateID id)
487 auto cert = TEST_CERTS.find(toRawCertificateID(id));
489 RUNNER_ASSERT_MSG(cert != TEST_CERTS.end(), "Unknown certificate index!");
491 auto &certStruct = cert->second;
492 RUNNER_ASSERT_MSG(certStruct.raw_base64.size() > 0, "Certificate is empty!");
494 checkCertificateValidity(cert);
496 return certStruct.raw_base64;
499 CKM::CertificateShPtr getTestCertificate(certificateID id)
501 auto cert = TEST_CERTS.find(toRawCertificateID(id));
503 RUNNER_ASSERT_MSG(cert != TEST_CERTS.end(), "Unknown certificate index!");
505 auto &certStruct = cert->second;
506 RUNNER_ASSERT_MSG(certStruct.certPtr != nullptr, "Certificate is empty!");
508 checkCertificateValidity(cert);
510 return certStruct.certPtr;
513 } // namespace TestData