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_IT_TLS_CA_5, // Microsoft IT TLS CA 5, signed by Baltimore CyberTrust Root,
45 // expires May 20, 2024
46 MICROSOFT_COM, // www.microsoft.com - signed by Microsoft IT TLS CA 5,
47 // expires October 22, 2021
49 // ocsp available chain on third party
50 MS_RSA_TLS_CA_2, // Microsoft RSA TLS CA 02, signed by Baltimore CyberTrust Root, expires 08 Oct 2024
51 BING_COM, // BING, signed by Microsoft RSA TLS CA 2, expires 19 Jul 2021
53 // footer - last element in the set
66 TestCert() : valid(UNKNOWN) {}
69 CKM::CertificateShPtr certPtr;
73 typedef map<RawCertificateID, TestCert> CertMap;
75 CKM::CertificateShPtr createCert(const string& cert) {
76 CKM::RawBuffer buffer_cert(cert.begin(), cert.end());
77 CKM::CertificateShPtr cptr = CKM::Certificate::create(buffer_cert, CKM::DataFormat::FORM_PEM);
81 RawCertificateID toRawCertificateID(certificateID id)
84 case certificateID::TEST_ROOT_CA: return RawCertificateID::TEST_ROOT_CA;
85 case certificateID::TEST_IM_CA: return RawCertificateID::TEST_IM_CA;
86 case certificateID::TEST_LEAF: return RawCertificateID::TEST_LEAF;
88 case certificateID::THIRD_PARTY_ROOT_CA: return RawCertificateID::BALTIMORE_CYBER_TRUST_ROOT;
89 case certificateID::THIRD_PARTY_IM_CA: return RawCertificateID::MS_IT_TLS_CA_5;
90 case certificateID::THIRD_PARTY_LEAF: return RawCertificateID::MICROSOFT_COM;
92 case certificateID::OCSP_AVAILABLE_IM: return RawCertificateID::MS_RSA_TLS_CA_2;
93 case certificateID::OCSP_AVAILABLE_LEAF: return RawCertificateID::BING_COM;
95 case certificateID::NO_CERT: return RawCertificateID::NO_CERT;
96 default: throw std::invalid_argument("Invalid raw certificat ID!");
100 CertMap initializeTestCerts()
104 // TEST_ROOT_CA, expires 2035
106 std::string raw_base64 = std::string(
107 "-----BEGIN CERTIFICATE-----\n"
108 "MIIDnzCCAoegAwIBAgIJAMH/ADkC5YSTMA0GCSqGSIb3DQEBBQUAMGYxCzAJBgNV\n"
109 "BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMQ0wCwYDVQQKDARBQ01FMRAwDgYD\n"
110 "VQQLDAdUZXN0aW5nMSEwHwYDVQQDDBhUZXN0IHJvb3QgY2EgY2VydGlmaWNhdGUw\n"
111 "HhcNMTQxMjMwMTcyMTUyWhcNMjQxMjI3MTcyMTUyWjBmMQswCQYDVQQGEwJBVTET\n"
112 "MBEGA1UECAwKU29tZS1TdGF0ZTENMAsGA1UECgwEQUNNRTEQMA4GA1UECwwHVGVz\n"
113 "dGluZzEhMB8GA1UEAwwYVGVzdCByb290IGNhIGNlcnRpZmljYXRlMIIBIjANBgkq\n"
114 "hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0EJRdUtd2th0vTVF7QxvDKzyFCF3w9vC\n"
115 "9IDE/Yr12w+a9jd0s7/eG96qTHIYffS3B7x2MB+d4n+SR3W0qmYh7xk8qfEgH3da\n"
116 "eDoV59IZ9r543KM+g8jm6KffYGX1bIJVVY5OhBRbO9nY6byYpd5kbCIUB6dCf7/W\n"
117 "rQl1aIdLGFIegAzPGFPXDcU6F192686x54bxt/itMX4agHJ9ZC/rrTBIZghVsjJo\n"
118 "5/AH5WZpasv8sfrGiiohAxtieoYoJkv5MOYP4/2lPlOY+Cgw1Yoz+HHv31AllgFs\n"
119 "BquBb/kJVmCCNsAOcnvQzTZUsW/TXz9G2nwRdqI1nSy2JvVjZGsqGQIDAQABo1Aw\n"
120 "TjAdBgNVHQ4EFgQUt6pkzFt1PZlfYRL/HGnufF4frdwwHwYDVR0jBBgwFoAUt6pk\n"
121 "zFt1PZlfYRL/HGnufF4frdwwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOC\n"
122 "AQEAld7Qwq0cdzDQ51w1RVLwTR8Oy25PB3rzwEHcSGJmdqlMi3xOdaz80S1R1BBX\n"
123 "ldvGBG5Tn0vT7xSuhmSgI2/HnBpy9ocHVOmhtNB4473NieEpfTYrnGXrFxu46Wus\n"
124 "9m/ZnugcQ2G6C54A/NFtvgLmaC8uH8M7gKdS6uYUwJFQEofkjmd4UpOYSqmcRXhS\n"
125 "Jzd5FYFWkJhKJYp3nlENSOD8CUFFVGekm05nFN2gRVc/qaqQkEX77+XYvhodLRsV\n"
126 "qMn7nf7taidDKLO2T4bhujztnTYOhhaXKgPy7AtZ28N2wvX96VyAPB/vrchGmyBK\n"
127 "kOg11TpPdNDkhb1J4ZCh2gupDg==\n"
128 "-----END CERTIFICATE-----\n");
129 cm[RawCertificateID::TEST_ROOT_CA].raw_base64 = raw_base64;
130 cm[RawCertificateID::TEST_ROOT_CA].certPtr = createCert(raw_base64);
133 // TEST_IM_CA, signed by TEST_ROOT_CA, expires 2035
135 std::string raw_base64 = std::string(
136 "-----BEGIN CERTIFICATE-----\n"
137 "MIIDljCCAn6gAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwZjELMAkGA1UEBhMCQVUx\n"
138 "EzARBgNVBAgMClNvbWUtU3RhdGUxDTALBgNVBAoMBEFDTUUxEDAOBgNVBAsMB1Rl\n"
139 "c3RpbmcxITAfBgNVBAMMGFRlc3Qgcm9vdCBjYSBjZXJ0aWZpY2F0ZTAeFw0xNTAx\n"
140 "MTYxNjQ1MzRaFw0zNTAxMTExNjQ1MzRaMGQxCzAJBgNVBAYTAkFVMRMwEQYDVQQI\n"
141 "DApTb21lLVN0YXRlMQ0wCwYDVQQKDARBQ01FMRAwDgYDVQQLDAdUZXN0aW5nMR8w\n"
142 "HQYDVQQDDBZUZXN0IElNIENBIGNlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEF\n"
143 "AAOCAQ8AMIIBCgKCAQEAzmBF78qClgoKfnLAncMXZwZ14TW+5kags1+QCYeg3c7j\n"
144 "L9+RvDxIaX2tKf1sukJcwQfYqUlQkwt+58LMOb2ORtkpj8Or6WCWCZ0BzneT8ug7\n"
145 "nxJT4m9+bohMF0JoKjjB2H4KNMHamLIwUxRKt6nyfk81kVhJOi2vzzxd+UCPi6Pc\n"
146 "UAbJNH48eNgOIg55nyFovVzYj8GIo/9GvHJj83PPa/KlJZ+Z1qZASZZ/VYorplVT\n"
147 "thsHXKfejhFy5YJ9t7n/vyAQsyBsagZsvX19xnH41fbYXHKf8UbXG23rNaZlchs6\n"
148 "XJVLQdzOpj3WTj/lCocVHqLaZISLhNQ3aI7kUBUdiwIDAQABo1AwTjAdBgNVHQ4E\n"
149 "FgQUoCYNaCBP4jl/3SYQuK8Ka+6i3QEwHwYDVR0jBBgwFoAUt6pkzFt1PZlfYRL/\n"
150 "HGnufF4frdwwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAjRzWiD97\n"
151 "Htv4Kxpm3P+C+xP9AEteCJfO+7p8MWgtWEJOknJyt55zeKS2JwZIq57KcbqD8U7v\n"
152 "vAUx1ymtUhlFPFd7J1mJ3pou+3aFYmGShYhGHpbrmUwjp7HVP588jrW1NoZVHdMc\n"
153 "4OgJWFrViXeu9+maIcekjMB/+9Y0dUgQuK5ZuT5H/Jwet7Th/o9uufTUZjBzRvrB\n"
154 "pbXgQpqgME2av4Q/6LuldPCTHLtWXgFUU2R+yCGmuGilvhFJnKoQryAbYnIQNWE8\n"
155 "SLoHQ9s1i7Zyb7HU6UAaqMOz15LBkyAqtNyJcO2p7Q/p5YK0xfD4xisI5qXucqVm\n"
157 "-----END CERTIFICATE-----\n");
158 cm[RawCertificateID::TEST_IM_CA].raw_base64 = raw_base64;
159 cm[RawCertificateID::TEST_IM_CA].certPtr = createCert(raw_base64);
162 // TEST_LEAF, signed by TEST_IM_CA, expires 2035
164 std::string raw_base64 = std::string(
165 "-----BEGIN CERTIFICATE-----\n"
166 "MIIDOzCCAiMCAQEwDQYJKoZIhvcNAQEFBQAwZDELMAkGA1UEBhMCQVUxEzARBgNV\n"
167 "BAgMClNvbWUtU3RhdGUxDTALBgNVBAoMBEFDTUUxEDAOBgNVBAsMB1Rlc3Rpbmcx\n"
168 "HzAdBgNVBAMMFlRlc3QgSU0gQ0EgY2VydGlmaWNhdGUwHhcNMTUwMTE2MTY0ODE0\n"
169 "WhcNMzUwMTExMTY0ODE0WjBjMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1T\n"
170 "dGF0ZTENMAsGA1UECgwEQUNNRTEQMA4GA1UECwwHVGVzdGluZzEeMBwGA1UEAwwV\n"
171 "VGVzdCBsZWFmIGNlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\n"
172 "CgKCAQEAzTdDIa2tDmRxFnIgiG+mBz8GoSVODs0ImNQGbqj+pLhBOFRH8fsah4Jl\n"
173 "z5YF9KwhMVLknnHGFLE/Nb7Ac35kEzhMQMpTRxohW83oxw3eZ8zN/FBoKqg4qHRq\n"
174 "QR8kS10YXTgrBR0ex/Vp+OUKEw6h7yL2r4Tpvrn9/qHwsxtLxqWbDIVf1O9b1Lfc\n"
175 "bllYMdmV5E62yN5tcwrDP8gvHjFnVeLzrG8wTpc9FR90/0Jkfp5jAJcArOBLrT0E\n"
176 "4VRqs+4HuwT8jAwFAmNnc7IYX5qSjtSWkmmHe73K/lzB+OiI0JEc/3eWUTWqwTSk\n"
177 "4tNCiQGBKJ39LXPTBBJdzmxVH7CUDQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQAp\n"
178 "UdDOGu3hNiG+Vn10aQ6B1ZmOj3t+45gUV3sC+y8hB8EK1g4P5Ke9bVDts0T5eOnj\n"
179 "CSc+6VoND5O4adI0IFFRFljHNVnvjeosHfUZNnowsmA2ptQBtC1g5ZKRvKXlkC5/\n"
180 "i5BGgRqPFA7y9WB9Y05MrJHf3E+Oz/RBsLeeNiNN+rF5X1vYExvGHpo0M0zS0ze9\n"
181 "HtC0aOy8ocsTrQkf3ceHTAXx2i8ftoSSD4klojtWFpWMrNQa52F7wB9nU6FfKRuF\n"
182 "Zj/T1JkYXKkEwZU6nAR2jdZp3EP9xj3o15V/tyFcXHx6l8NTxn4cJb+Xe4VquQJz\n"
183 "6ON7PVe0ABN/AlwVQiFE\n"
184 "-----END CERTIFICATE-----\n");
185 cm[RawCertificateID::TEST_LEAF].raw_base64 = raw_base64;
186 cm[RawCertificateID::TEST_LEAF].certPtr = createCert(raw_base64);
189 // BING, signed by Microsoft RSA TLS CA 2, expires 19 Jul 2021
191 std::string raw_base64(
192 "-----BEGIN CERTIFICATE-----\n"
193 "MIIM3jCCCsagAwIBAgITfwAHP+m/X4JffLePJgAAAAc/6TANBgkqhkiG9w0BAQsF\n"
194 "ADBPMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u\n"
195 "MSAwHgYDVQQDExdNaWNyb3NvZnQgUlNBIFRMUyBDQSAwMjAeFw0yMTAxMTkwMjEw\n"
196 "MjBaFw0yMTA3MTkwMjEwMjBaMBcxFTATBgNVBAMTDHd3dy5iaW5nLmNvbTCCASIw\n"
197 "DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALtyvjNIaDEpBgHoi3Hq9e62DuXe\n"
198 "B6eVJ3pEGF9pPLH5JpSOt3u8Zfpshe0I8qBgWGI877K+iCwPG3tSst8NybLfeEik\n"
199 "1Z1JxzPgph9xC3uPAJWNSXaG+ZChICUtIEFEfZ4dyoGpB8LGX82Cpdk6GCvq0WxT\n"
200 "k6dhSgeF+MTmmvAvMS4Im8HEb0ruz8Z+Cx2GqY2gDIx0QACBEHQLSQmz2w4caQKv\n"
201 "ZtTCH4Y8gjiJvmwIBqPPmr2qSot5kRUZdFbwi0FlLUrmcYRE7Rrs3F0lVR9ceZ8L\n"
202 "ykoZ0p3JhSpAZ08q72eJM43NC9aYhydZgFDoIPNlbaGrmQjJTrKhh7emCu0CAwEA\n"
203 "AaOCCOkwggjlMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDxAHYAfT7y+I//iFVoJMLA\n"
204 "yp5SiXkrxQ54CX8uapdomX4i8NcAAAF3GHF4PQAABAMARzBFAiA/IV2Hn3TDzlg8\n"
205 "r+Pw5lfcKvECYsC3Dm2o356gTi/AmQIhAPgBb5fydZBLH95SnqmyhHQgYQnMq/f3\n"
206 "7uUsdosP46frAHcA7sCV7o1yZA+S48O5G8cSo2lqCXtLahoUOOZHssvtxfkAAAF3\n"
207 "GHF4NAAABAMASDBGAiEA5HA9s2/r8N+on58s5Gm0QEIX2pvliUObpOXJhJyk8fcC\n"
208 "IQDO6gHTzvNoljkCdj6LjQS6JIYHJxS40vCNZ9dPOOhJ6TAnBgkrBgEEAYI3FQoE\n"
209 "GjAYMAoGCCsGAQUFBwMBMAoGCCsGAQUFBwMCMD4GCSsGAQQBgjcVBwQxMC8GJysG\n"
210 "AQQBgjcVCIfahnWD7tkBgsmFG4G1nmGF9OtggV2Fho5Bh8KYUAIBZAIBJTCBhwYI\n"
211 "KwYBBQUHAQEEezB5MFMGCCsGAQUFBzAChkdodHRwOi8vd3d3Lm1pY3Jvc29mdC5j\n"
212 "b20vcGtpL21zY29ycC9NaWNyb3NvZnQlMjBSU0ElMjBUTFMlMjBDQSUyMDAyLmNy\n"
213 "dDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AubXNvY3NwLmNvbTAdBgNVHQ4EFgQU\n"
214 "fQyzsQomVt5vmIpIjxaFs+xTSD8wCwYDVR0PBAQDAgSwMIIFbQYDVR0RBIIFZDCC\n"
215 "BWCCDHd3dy5iaW5nLmNvbYIQZGljdC5iaW5nLmNvbS5jboITKi5wbGF0Zm9ybS5i\n"
216 "aW5nLmNvbYIKKi5iaW5nLmNvbYIIYmluZy5jb22CFmllb25saW5lLm1pY3Jvc29m\n"
217 "dC5jb22CEyoud2luZG93c3NlYXJjaC5jb22CGWNuLmllb25saW5lLm1pY3Jvc29m\n"
218 "dC5jb22CESoub3JpZ2luLmJpbmcuY29tgg0qLm1tLmJpbmcubmV0gg4qLmFwaS5i\n"
219 "aW5nLmNvbYIYZWNuLmRldi52aXJ0dWFsZWFydGgubmV0gg0qLmNuLmJpbmcubmV0\n"
220 "gg0qLmNuLmJpbmcuY29tghBzc2wtYXBpLmJpbmcuY29tghBzc2wtYXBpLmJpbmcu\n"
221 "bmV0gg4qLmFwaS5iaW5nLm5ldIIOKi5iaW5nYXBpcy5jb22CD2JpbmdzYW5kYm94\n"
222 "LmNvbYIWZmVlZGJhY2subWljcm9zb2Z0LmNvbYIbaW5zZXJ0bWVkaWEuYmluZy5v\n"
223 "ZmZpY2UubmV0gg5yLmJhdC5iaW5nLmNvbYIQKi5yLmJhdC5iaW5nLmNvbYISKi5k\n"
224 "aWN0LmJpbmcuY29tLmNugg8qLmRpY3QuYmluZy5jb22CDiouc3NsLmJpbmcuY29t\n"
225 "ghAqLmFwcGV4LmJpbmcuY29tghYqLnBsYXRmb3JtLmNuLmJpbmcuY29tgg13cC5t\n"
226 "LmJpbmcuY29tggwqLm0uYmluZy5jb22CD2dsb2JhbC5iaW5nLmNvbYIRd2luZG93\n"
227 "c3NlYXJjaC5jb22CDnNlYXJjaC5tc24uY29tghEqLmJpbmdzYW5kYm94LmNvbYIZ\n"
228 "Ki5hcGkudGlsZXMuZGl0dS5saXZlLmNvbYIPKi5kaXR1LmxpdmUuY29tghgqLnQw\n"
229 "LnRpbGVzLmRpdHUubGl2ZS5jb22CGCoudDEudGlsZXMuZGl0dS5saXZlLmNvbYIY\n"
230 "Ki50Mi50aWxlcy5kaXR1LmxpdmUuY29tghgqLnQzLnRpbGVzLmRpdHUubGl2ZS5j\n"
231 "b22CFSoudGlsZXMuZGl0dS5saXZlLmNvbYILM2QubGl2ZS5jb22CE2FwaS5zZWFy\n"
232 "Y2gubGl2ZS5jb22CFGJldGEuc2VhcmNoLmxpdmUuY29tghVjbndlYi5zZWFyY2gu\n"
233 "bGl2ZS5jb22CDGRldi5saXZlLmNvbYINZGl0dS5saXZlLmNvbYIRZmFyZWNhc3Qu\n"
234 "bGl2ZS5jb22CDmltYWdlLmxpdmUuY29tgg9pbWFnZXMubGl2ZS5jb22CEWxvY2Fs\n"
235 "LmxpdmUuY29tLmF1ghRsb2NhbHNlYXJjaC5saXZlLmNvbYIUbHM0ZC5zZWFyY2gu\n"
236 "bGl2ZS5jb22CDW1haWwubGl2ZS5jb22CEW1hcGluZGlhLmxpdmUuY29tgg5sb2Nh\n"
237 "bC5saXZlLmNvbYINbWFwcy5saXZlLmNvbYIQbWFwcy5saXZlLmNvbS5hdYIPbWlu\n"
238 "ZGlhLmxpdmUuY29tgg1uZXdzLmxpdmUuY29tghxvcmlnaW4uY253ZWIuc2VhcmNo\n"
239 "LmxpdmUuY29tghZwcmV2aWV3LmxvY2FsLmxpdmUuY29tgg9zZWFyY2gubGl2ZS5j\n"
240 "b22CEnRlc3QubWFwcy5saXZlLmNvbYIOdmlkZW8ubGl2ZS5jb22CD3ZpZGVvcy5s\n"
241 "aXZlLmNvbYIVdmlydHVhbGVhcnRoLmxpdmUuY29tggx3YXAubGl2ZS5jb22CEndl\n"
242 "Ym1hc3Rlci5saXZlLmNvbYITd2VibWFzdGVycy5saXZlLmNvbYIVd3d3LmxvY2Fs\n"
243 "LmxpdmUuY29tLmF1ghR3d3cubWFwcy5saXZlLmNvbS5hdTCBsAYDVR0fBIGoMIGl\n"
244 "MIGioIGfoIGchk1odHRwOi8vbXNjcmwubWljcm9zb2Z0LmNvbS9wa2kvbXNjb3Jw\n"
245 "L2NybC9NaWNyb3NvZnQlMjBSU0ElMjBUTFMlMjBDQSUyMDAyLmNybIZLaHR0cDov\n"
246 "L2NybC5taWNyb3NvZnQuY29tL3BraS9tc2NvcnAvY3JsL01pY3Jvc29mdCUyMFJT\n"
247 "QSUyMFRMUyUyMENBJTIwMDIuY3JsMFcGA1UdIARQME4wQgYJKwYBBAGCNyoBMDUw\n"
248 "MwYIKwYBBQUHAgEWJ2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvbXNjb3Jw\n"
249 "L2NwczAIBgZngQwBAgEwHwYDVR0jBBgwFoAU/y9/4Qb0OPMt7SWNmML+DvZs/Pow\n"
250 "HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA0GCSqGSIb3DQEBCwUAA4IC\n"
251 "AQBv+MBd+JCQU0JC7zy7iwV3XAiWr72G5cd7g8qO4ewjJMydoToF8E6BndIBlaPi\n"
252 "HcRlY0/UZYIGpU9T7xB0xgXYzo1E9a5znUIGmfSNfalfZAknMS5VIdGkWwqBYvn7\n"
253 "AibqGjiH521CjdxedWy/NjQlsmMxzLh/kXkqWonhMjuFy1u9hZbWDBHU6KwjHcic\n"
254 "ikgWR9+pgZdpab1xZ+rw9ubYALjLl8H7RnOFSVwiKZaR6ZuHNN+7Jiy5SsrfCJ0J\n"
255 "h3kqaDL35PMdW2SlV8neH2r31wf6b3EVHBldIuviY05adR5wy6odYzrjgcj9QdlT\n"
256 "bpajRgTwzuOeWLOP592GAcpI5iie2toRfuPtmCUtbgB5/SeneV1+Yqv9EnYxoUiK\n"
257 "0Q8jfbyoTAZ/uuQUkrzamlZkEw615kONH49AREYiuuyFAygvZ11f4V6GgS+/Y3K5\n"
258 "5/mX5niKcaQsWvqlfsvBJC43lDQNAjv7fvPGxBOEF8msuq44/G4bU5qNuhvVYV6/\n"
259 "TPrRWAGSomK2OPO+SiVim/HnPP7U+Koz5gTD0wrDrnfkj2KuS8X7AVGyTq0hhSil\n"
260 "rE6eVc9Ql3135QkhYEb+3A0JlSpW5kfE8YoYKtow2CTlGsE6U6m+V6AFLbkc08rC\n"
261 "6w2nIBfLF41lU58CgyUGyPBsB3gyw8AKt2gYOKhg4ZQp6w==\n"
262 "-----END CERTIFICATE-----\n");
263 cm[RawCertificateID::BING_COM].raw_base64 = raw_base64;
264 cm[RawCertificateID::BING_COM].certPtr = createCert(raw_base64);
268 // Microsoft RSA TLS CA 02, signed by Baltimore CyberTrust Root, expires 08 Oct 2024
270 std::string raw_base64(
271 "-----BEGIN CERTIFICATE-----\n"
272 "MIIFWjCCBEKgAwIBAgIQD6dHIsU9iMgPWJ77H51KOjANBgkqhkiG9w0BAQsFADBa\n"
273 "MQswCQYDVQQGEwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJl\n"
274 "clRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTIw\n"
275 "MDcyMTIzMDAwMFoXDTI0MTAwODA3MDAwMFowTzELMAkGA1UEBhMCVVMxHjAcBgNV\n"
276 "BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEgMB4GA1UEAxMXTWljcm9zb2Z0IFJT\n"
277 "QSBUTFMgQ0EgMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQD0wBlZ\n"
278 "qiokfAYhMdHuEvWBapTj9tFKL+NdsS4pFDi8zJVdKQfR+F039CDXtD9YOnqS7o88\n"
279 "+isKcgOeQNTri472mPnn8N3vPCX0bDOEVk+nkZNIBA3zApvGGg/40Thv78kAlxib\n"
280 "MipsKahdbuoHByOB4ZlYotcBhf/ObUf65kCRfXMRQqOKWkZLkilPPn3zkYM5GHxe\n"
281 "I4MNZ1SoKBEoHa2E/uDwBQVxadY4SRZWFxMd7ARyI4Cz1ik4N2Z6ALD3MfjAgEED\n"
282 "woknyw9TGvr4PubAZdqU511zNLBoavar2OAVTl0Tddj+RAhbnX1/zypqk+ifv+d3\n"
283 "CgiDa8Mbvo1u2Q8nuUBrKVUmR6EjkV/dDrIsUaU643v/Wp/uE7xLDdhC5rplK9si\n"
284 "NlYohMTMKLAkjxVeWBWbQj7REickISpc+yowi3yUrO5lCgNAKrCNYw+wAfAvhFkO\n"
285 "eqPm6kP41IHVXVtGNC/UogcdiKUiR/N59IfYB+o2v54GMW+ubSC3BohLFbho/oZZ\n"
286 "5XyulIZK75pwTHmauCIeE5clU9ivpLwPTx9b0Vno9+ApElrFgdY0/YKZ46GfjOC9\n"
287 "ta4G25VJ1WKsMmWLtzyrfgwbYopquZd724fFdpvsxfIvMG5m3VFkThOqzsOttDcU\n"
288 "fyMTqM2pan4txG58uxNJ0MjR03UCEULRU+qMnwIDAQABo4IBJTCCASEwHQYDVR0O\n"
289 "BBYEFP8vf+EG9DjzLe0ljZjC/g72bPz6MB8GA1UdIwQYMBaAFOWdWTCCR1jMrPoI\n"
290 "VDaGezq1BE3wMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYI\n"
291 "KwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADA0BggrBgEFBQcBAQQoMCYwJAYI\n"
292 "KwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTA6BgNVHR8EMzAxMC+g\n"
293 "LaArhilodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vT21uaXJvb3QyMDI1LmNybDAq\n"
294 "BgNVHSAEIzAhMAgGBmeBDAECATAIBgZngQwBAgIwCwYJKwYBBAGCNyoBMA0GCSqG\n"
295 "SIb3DQEBCwUAA4IBAQCg2d165dQ1tHS0IN83uOi4S5heLhsx+zXIOwtxnvwCWdOJ\n"
296 "3wFLQaFDcgaMtN79UjMIFVIUedDZBsvalKnx+6l2tM/VH4YAyNPx+u1LFR0joPYp\n"
297 "QYLbNYkedkNuhRmEBesPqj4aDz68ZDI6fJ92sj2q18QvJUJ5Qz728AvtFOat+Ajg\n"
298 "K0PFqPYEAviUKr162NB1XZJxf6uyIjUlnG4UEdHfUqdhl0R84mMtrYINksTzQ2sH\n"
299 "YM8fEhqICtTlcRLr/FErUaPUe9648nziSnA0qKH7rUZqP/Ifmbo+WNZSZG1BbgOh\n"
300 "lk+521W+Ncih3HRbvRBE0LWYT8vWKnfjgZKxwHwJ\n"
301 "-----END CERTIFICATE-----\n");
302 cm[RawCertificateID::MS_RSA_TLS_CA_2].raw_base64 = raw_base64;
303 cm[RawCertificateID::MS_RSA_TLS_CA_2].certPtr = createCert(raw_base64);
307 // Baltimore CyberTrust Root, (root CA), expires May 13, 2025
309 std::string raw_base64 = std::string(
310 "-----BEGIN CERTIFICATE-----\n"
311 "MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ\n"
312 "RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD\n"
313 "VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX\n"
314 "DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y\n"
315 "ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy\n"
316 "VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr\n"
317 "mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr\n"
318 "IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK\n"
319 "mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu\n"
320 "XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy\n"
321 "dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye\n"
322 "jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1\n"
323 "BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3\n"
324 "DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92\n"
325 "9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx\n"
326 "jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0\n"
327 "Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz\n"
328 "ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS\n"
329 "R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp\n"
330 "-----END CERTIFICATE-----\n");
331 cm[RawCertificateID::BALTIMORE_CYBER_TRUST_ROOT].raw_base64 = raw_base64;
332 cm[RawCertificateID::BALTIMORE_CYBER_TRUST_ROOT].certPtr = createCert(raw_base64);
335 // Microsoft IT TLS CA 5, signed by Baltimore CyberTrust Root, expires May 20, 2024
337 std::string raw_base64 = std::string(
338 "-----BEGIN CERTIFICATE-----\n"
339 "MIIFtDCCBJygAwIBAgIQCIjNUl8ZJERNFKWCkd65UjANBgkqhkiG9w0BAQsFADBa\n"
340 "MQswCQYDVQQGEwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJl\n"
341 "clRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTE2\n"
342 "MDUyMDEyNTMwM1oXDTI0MDUyMDEyNTMwM1owgYsxCzAJBgNVBAYTAlVTMRMwEQYD\n"
343 "VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy\n"
344 "b3NvZnQgQ29ycG9yYXRpb24xFTATBgNVBAsTDE1pY3Jvc29mdCBJVDEeMBwGA1UE\n"
345 "AxMVTWljcm9zb2Z0IElUIFRMUyBDQSA1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A\n"
346 "MIICCgKCAgEAmt+BXDuPrul5lrmaeaeB8jnaVShGIwLFgmYHthXe/Zw6GpuRCdJm\n"
347 "jwuJF/hxhyF/ONM/miUAtzXQq/gIejbzUFvfKykn3qTdJJL69MZwjTYqmvCA3jX6\n"
348 "HkKdCYGq1QcKFqXFWkJtQr4eQoK0VzCZW0Ur1I/TCgbGc5Ok4YPvxb8FJ6d4zbML\n"
349 "4J4iFvOY3KYU6MyU1yP50FCZu7ULEJXx3wLpj46dVpk82I/TWPtckn49e/hQSVr3\n"
350 "EHt3+OZKkEpVUt6UrXQJoGRXLM0HkJ8WrZXD0Qa68e9sBbUErKncGzGbDi0ZlQRP\n"
351 "3mbLrTVyrxmCCLIUOhZfsDyb240MsALWJh/oFXHE7/ljOUOM6cKSLqHCoDAlDpYn\n"
352 "X56jK4LWEL08GR6mh/5VITpcQfwBmMwvkv9mOLS4ZpwPEmhLSqyGu16Y/56mnFNs\n"
353 "MxGk0K5SR9eLj/GWrLkpmo8s8a1kGMMmuwBk3lBwwLvsxmuu06DvwPFcDfLMelna\n"
354 "GDMvWRCtZxQsXyJDSkTh6N3g51UWTgnvA0wMSFBa8APfju9jyltnh0NALAa2Hw8+\n"
355 "U8BmP9cUFeYIYphIfoPlp7VdUS1ULWH9NF3Ut4DN0n3OsSQ785dsbBPeihfJivVI\n"
356 "lUL3EpDjEBf2oQDFNiplkZ4F7EIuWriZG//UTrX6ZlXZg46/CCmN+gsCAwEAAaOC\n"
357 "AUIwggE+MB0GA1UdDgQWBBQI/iWfdOqHBMK8u46oOF8zxtFsZTAfBgNVHSMEGDAW\n"
358 "gBTlnVkwgkdYzKz6CFQ2hns6tQRN8DASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1Ud\n"
359 "DwEB/wQEAwIBhjAnBgNVHSUEIDAeBggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUF\n"
360 "BwMJMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGln\n"
361 "aWNlcnQuY29tMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0\n"
362 "LmNvbS9PbW5pcm9vdDIwMjUuY3JsMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsG\n"
363 "AQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMA0GCSqGSIb3DQEB\n"
364 "CwUAA4IBAQA+8s8wpXq/HmrfOVgYKDzDne7ngcVL/Gf2vx9ON9re8K/uivkDe2Bn\n"
365 "dMc72v8rSuv9VHUTi+XCgRK6UhIguimKOs1DJMzVFwX+nBY/c+BtQcB2PfKrSMVZ\n"
366 "YmS6RE8KGII/Qeo/GDpY56AwV3X10WoxFLaUmWXatugB3uSr+7Xz5RkKGF+kAlfe\n"
367 "tlwmb3P+Lgn1CEPED8ckf50oZ2Wh3FvwOv34cIXnpU8k3kI/HUQ7XYUGhR0eHNTZ\n"
368 "TlHk/R4RFsyeANmXGpfjZceGNRtTdr4y0SxBSUujPpMMW3dXBzA8NYuM0WmiJ/pV\n"
369 "6KudEB7RF9+6bInTyVvXC5SIqdi0ldeO\n"
370 "-----END CERTIFICATE-----\n");
371 cm[RawCertificateID::MS_IT_TLS_CA_5].raw_base64 = raw_base64;
372 cm[RawCertificateID::MS_IT_TLS_CA_5].certPtr = createCert(raw_base64);
375 // www.microsoft.com - signed by Microsoft IT TLS CA 5, expires October 22, 2021
377 std::string raw_base64 = std::string(
378 "-----BEGIN CERTIFICATE-----\n"
379 "MIIJHzCCBwegAwIBAgITLQAMNxVixB2TlAh/aAAAAAw3FTANBgkqhkiG9w0BAQsF\n"
380 "ADCBizELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT\n"
381 "B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEVMBMGA1UE\n"
382 "CxMMTWljcm9zb2Z0IElUMR4wHAYDVQQDExVNaWNyb3NvZnQgSVQgVExTIENBIDUw\n"
383 "HhcNMTkxMDIxMjIwNDA0WhcNMjExMDIxMjIwNDA0WjCBiDELMAkGA1UEBhMCVVMx\n"
384 "CzAJBgNVBAgTAldBMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv\n"
385 "ZnQgQ29ycG9yYXRpb24xHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEa\n"
386 "MBgGA1UEAxMRd3d3Lm1pY3Jvc29mdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IB\n"
387 "DwAwggEKAoIBAQDTEK1CzUwdArEOb/vDOqds7/vQ1yGQtAYaZYNBch27Kw3/XKnf\n"
388 "td3NVj7tYe7MhI1U+bknxhSx7m4ti7Pzt6mxQiTZ/KegYhxosd3sOEikXgJVzECv\n"
389 "h0Mvd6adrvi00cUeQz0dlkUkuxMAjiFs+FX7Ogf4xt8ub4hKZPGB85vDnQQ0OHVh\n"
390 "L9IuUbYHhmh8EoDEdR+og+lj7u5OKt3YEWntgbnfV1d66U59kfp5Dg4T/zFjqz/l\n"
391 "U3KGBWgj0YoxH8KGfuq2YfFQsm7Q4MDJnR2PNUbwwrK5JldcRn27o5SVZxaB55bs\n"
392 "dyHWL0GbG5JoIIWg8pGJXKYGfARDEVjWijBPAgMBAAGjggR7MIIEdzCCAXwGCisG\n"
393 "AQQB1nkCBAIEggFsBIIBaAFmAHYA9lyUL9F3MCIUVBgIMJRWjuNNExkzv98MLyAL\n"
394 "zE7xZOMAAAFt8GJxcQAABAMARzBFAiEAldKDzhaLTJ1PpTpE7TmrRp+nDwoEZbW5\n"
395 "JOfrPKoR6PsCIBOqc6bzu7MnferBbxkUKwS67LpFTJgxYk6RV98m5fK2AHUAVYHU\n"
396 "whaQNgFK6gubVzxT8MDkOHhwJQgXL6OqHQcT0wwAAAFt8GJyzQAABAMARjBEAiBa\n"
397 "JqHGYrk+yh3ccuelsJxqLbhE3DJuSBZxe+xEpiabhQIgRdcckht/x8uG6tSrRKg5\n"
398 "0GdwnWlFKMBDT50rQjIPflMAdQB9PvL4j/+IVWgkwsDKnlKJeSvFDngJfy5ql2iZ\n"
399 "fiLw1wAAAW3wYnG7AAAEAwBGMEQCIGToqXolvHTes1f0QwV9RSvEE5HVwX6jn70+\n"
400 "KaExl0+BAiBosObeHSU867FO1Aw5dw+R01ZZ1fudHxDwuXgLvqFmQzAnBgkrBgEE\n"
401 "AYI3FQoEGjAYMAoGCCsGAQUFBwMCMAoGCCsGAQUFBwMBMD4GCSsGAQQBgjcVBwQx\n"
402 "MC8GJysGAQQBgjcVCIfahnWD7tkBgsmFG4G1nmGF9OtggV2E0t9CgueTegIBZAIB\n"
403 "HTCBhQYIKwYBBQUHAQEEeTB3MFEGCCsGAQUFBzAChkVodHRwOi8vd3d3Lm1pY3Jv\n"
404 "c29mdC5jb20vcGtpL21zY29ycC9NaWNyb3NvZnQlMjBJVCUyMFRMUyUyMENBJTIw\n"
405 "NS5jcnQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLm1zb2NzcC5jb20wHQYDVR0O\n"
406 "BBYEFParvwUeQbdw6ZH4GpVu9gwrCfuVMAsGA1UdDwQEAwIEsDCBmQYDVR0RBIGR\n"
407 "MIGOghN3d3dxYS5taWNyb3NvZnQuY29tghF3d3cubWljcm9zb2Z0LmNvbYIYc3Rh\n"
408 "dGljdmlldy5taWNyb3NvZnQuY29tghFpLnMtbWljcm9zb2Z0LmNvbYINbWljcm9z\n"
409 "b2Z0LmNvbYIRYy5zLW1pY3Jvc29mdC5jb22CFXByaXZhY3kubWljcm9zb2Z0LmNv\n"
410 "bTCBrAYDVR0fBIGkMIGhMIGeoIGboIGYhktodHRwOi8vbXNjcmwubWljcm9zb2Z0\n"
411 "LmNvbS9wa2kvbXNjb3JwL2NybC9NaWNyb3NvZnQlMjBJVCUyMFRMUyUyMENBJTIw\n"
412 "NS5jcmyGSWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvbXNjb3JwL2NybC9N\n"
413 "aWNyb3NvZnQlMjBJVCUyMFRMUyUyMENBJTIwNS5jcmwwTQYDVR0gBEYwRDBCBgkr\n"
414 "BgEEAYI3KgEwNTAzBggrBgEFBQcCARYnaHR0cDovL3d3dy5taWNyb3NvZnQuY29t\n"
415 "L3BraS9tc2NvcnAvY3BzMB8GA1UdIwQYMBaAFAj+JZ906ocEwry7jqg4XzPG0Wxl\n"
416 "MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOC\n"
417 "AgEAdWMaW3NOP5Yr47Sow1UZNLMmDlxNjz+8DcHiflQfKsImOvs/UflUrMGXG7rH\n"
418 "57NbJZ9nYpSTHWxSJfKsGPc3pgc5R1sxZxDb6lBuXEN9NvhJMmPwBkyKJAAnjYN6\n"
419 "yCNZP4X6dBOONW8uopknF+CRHDZdSiMaFiE4fVCe0LrO90b4ROPsRV8zHn57i1B1\n"
420 "69n1cqsLXrMHvK0Xnu7rwrvvd5BbOaqm7DrgwJYUk0UciNEfcyN2dNRcCxofWQdV\n"
421 "GQqvagqtjyDCm/EJ6DJ2kWllGHjauc8IkMaUeCedTYphChEckXoRBZikZtyL0oZj\n"
422 "67iKht6mm4fST+x0Zuu5wdzUoCTQsNTHV0GSbcVIRcgmaNiwP+0+lrRocUrj2h/7\n"
423 "2IQN8Pe/+CrDeVJNlKA9gWNl+t1F/r3CKWnkENyNUCTggiCSojdY9Rkj1rTieP6M\n"
424 "SBUZBWf3MB5XIuaLOTO0/whM831krxNG/k0mdCpDtdKvCKIcARrkKM9A3TxtVpOd\n"
425 "8f9kifcGaPqTQYr8fxhrNB864qsCG17o8ZckBKW8FY5H/jSQAZb1qbwsTbBMXJIr\n"
426 "0lAPwH7LIAHJJyslG0X3Mp0ARumGWqVwiHOCaLXO1iSQX0wW4yo+lGxWONvOIoad\n"
427 "2Ned/fxM675fEVC+r+DI6BKbt9ChfIXiXeULqOZC3yp2Fo8=\n"
428 "-----END CERTIFICATE-----\n");
429 cm[RawCertificateID::MICROSOFT_COM].raw_base64 = raw_base64;
430 cm[RawCertificateID::MICROSOFT_COM].certPtr = createCert(raw_base64);
436 CertMap TEST_CERTS = initializeTestCerts();
438 } // namespace TestData::anonymous
440 void checkCertificateValidity(std::map<RawCertificateID, TestCert>::iterator& it)
442 if (it->second.valid == TestCert::UNKNOWN)
444 auto buff = BIO_new(BIO_s_mem());
445 BIO_write(buff, it->second.raw_base64.c_str(), it->second.raw_base64.size());
447 X509* x509 = PEM_read_bio_X509(buff, nullptr, nullptr, nullptr);
450 RUNNER_ASSERT_MSG(x509 != NULL, "Test certificate " << it->first << " can't be parsed");
452 if (X509_cmp_current_time(X509_get_notBefore(x509)) > 0)
453 it->second.valid = TestCert::NOT_YET_VALID;
454 else if (X509_cmp_current_time(X509_get_notAfter(x509)) < 0)
455 it->second.valid = TestCert::EXPIRED;
457 it->second.valid = TestCert::VALID;
462 switch (it->second.valid)
464 case TestCert::NOT_YET_VALID:
466 "Test certificate " << it->first <<
467 " is not yet valid. Check the certificate and the system date.");
469 case TestCert::EXPIRED:
471 "Test certificate " << it->first <<
472 " has expired. Check the certificate and the system date.");
479 std::string getTestCertificateBase64(certificateID id)
481 auto cert = TEST_CERTS.find(toRawCertificateID(id));
483 RUNNER_ASSERT_MSG(cert != TEST_CERTS.end(), "Unknown certificate index!");
485 auto &certStruct = cert->second;
486 RUNNER_ASSERT_MSG(certStruct.raw_base64.size() > 0, "Certificate is empty!");
488 checkCertificateValidity(cert);
490 return certStruct.raw_base64;
493 CKM::CertificateShPtr getTestCertificate(certificateID id)
495 auto cert = TEST_CERTS.find(toRawCertificateID(id));
497 RUNNER_ASSERT_MSG(cert != TEST_CERTS.end(), "Unknown certificate index!");
499 auto &certStruct = cert->second;
500 RUNNER_ASSERT_MSG(certStruct.certPtr != nullptr, "Certificate is empty!");
502 checkCertificateValidity(cert);
504 return certStruct.certPtr;
507 } // namespace TestData