Add unit test cases for SignatureValidator
[platform/core/security/cert-svc.git] / tests / vcore / test-common.cpp
1 /*
2  * Copyright (c) 2016-2019 Samsung Electronics Co., Ltd. All rights reserved
3  *
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
7  *
8  *        http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 #include "test-common.h"
18
19 const std::string TestData::widget_path =
20         std::string(TESTAPP_RES_DIR) + "apps/wgt";
21 const std::string TestData::widget_dist22_path =
22         std::string(TESTAPP_RES_DIR) + "apps/wgt_dist22";
23 const std::string TestData::widget_negative_hash_path =
24         std::string(TESTAPP_RES_DIR) + "apps/wgt_negative_hash";
25 const std::string TestData::widget_negative_signature_path =
26         std::string(TESTAPP_RES_DIR) + "apps/wgt_negative_signature";
27 const std::string TestData::widget_negative_certificate_path =
28         std::string(TESTAPP_RES_DIR) + "apps/wgt_negative_certificate";
29 const std::string TestData::widget_partner_path =
30         std::string(TESTAPP_RES_DIR) + "apps/wgt_partner";
31 const std::string TestData::widget_platform_path =
32         std::string(TESTAPP_RES_DIR) + "apps/wgt_platform";
33 const std::string TestData::widget_positive_link_path =
34         std::string(TESTAPP_RES_DIR) + "apps/wgt_positive_link";
35 const std::string TestData::widget_negative_link_path =
36         std::string(TESTAPP_RES_DIR) + "apps/wgt_negative_link";
37
38 const std::string TestData::tpk_path =
39         std::string(TESTAPP_RES_DIR) + "apps/tpk";
40 const std::string TestData::attacked_tpk_path =
41         std::string(TESTAPP_RES_DIR) + "apps/attacked-tpk";
42 const std::string TestData::tpk_with_userdata_path =
43         std::string(TESTAPP_RES_DIR) + "apps/tpk-with-userdata";
44 const std::string TestData::attacked_tpk_with_userdata_path = std::string(
45         TESTAPP_RES_DIR) + "apps/attacked-tpk-with-userdata";
46
47 const std::string TestData::tpk_sdk_sample_path[3] = {
48         std::string(TESTAPP_RES_DIR) + "apps/tpk-sdk-sample/thumbNail",
49         std::string(TESTAPP_RES_DIR) + "apps/tpk-sdk-sample/mediaContent",
50         std::string(TESTAPP_RES_DIR) + "apps/tpk-sdk-sample/player"};
51
52 // bing.com, signed by Microsoft RSA TLS CA 01, expires 15 Nov 2023
53 const std::string TestData::certEE =
54         "MIIJGTCCBwGgAwIBAgITEgAxQ0VlMES59RTscQAAADFDRTANBgkqhkiG9w0BAQsF"
55         "ADBPMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u"
56         "MSAwHgYDVQQDExdNaWNyb3NvZnQgUlNBIFRMUyBDQSAwMTAeFw0yMjExMTUyMDE2"
57         "MzhaFw0yMzExMTUyMDE2MzhaMGExCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJXQTEQ"
58         "MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u"
59         "MRMwEQYDVQQDEwpyLmJpbmcuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB"
60         "CgKCAQEAvzvBoCT8A/rooZzeDm7yJ9PdB5c4ZE54P4q+R5ZaY3l9+UH7wkD/AMgx"
61         "5RUwpCg3JlZaSrl5kjp6xvjmhvy08v/mp0Jw80zG33lQ8DOk16VYBwpoSBy2Pn6E"
62         "6bhDYHGFybPzpKlKxiJHSYuiAF+05FfUk/jBmXFMkmsDlm5Fwq1y6/da4K0bJImC"
63         "msWDPDZrf3A8fu9lQeNRv3tbvrknOCGKaQ15iHxRpHhvMDxfX4/ba/ztw23wMExv"
64         "YKdAkUHQUMygbZE/vSBQhPtqqHFc+IY9sKpJ35oa4lfklnzgxlACogTmytJsrhry"
65         "lDeTp9bBAQwV2T7enHwoy1jdFaaJQwIDAQABo4IE2jCCBNYwggF+BgorBgEEAdZ5"
66         "AgQCBIIBbgSCAWoBaAB1AOg+0No+9QY1MudXKLyJa8kD08vREWvs62nhd31tBr1u"
67         "AAABhHz5BCoAAAQDAEYwRAIgTDH4xbzeE641O31H3wgjEfWbEhEKOfppCp+tYA3i"
68         "1CgCIF2TX3NmpCL3XEYDtbBv1ryuIA3cPGhgzynDWAdMiY5wAHYAVYHUwhaQNgFK"
69         "6gubVzxT8MDkOHhwJQgXL6OqHQcT0wwAAAGEfPkEXwAABAMARzBFAiEA3ao53zxV"
70         "/geztebynoFndOYoZiKOf0rSsa/PAEAsczcCIEOtGgNpraLTEJhe1OYbnuAo9Rak"
71         "eAbFPfjJdALwgGWVAHcAejKMVNi3LbYg6jjgUh7phBZwMhOFTTvSK8E6V6NS61IA"
72         "AAGEfPkC5AAABAMASDBGAiEAzov/r1LY9ELiZbJ2690S3ujq3gzpJ3Sxi6VN58gF"
73         "jH4CIQCG8bsL4aIfW3vB+o6mNl2xB9/cPEMbmFgUPBU8Lyr9uzAnBgkrBgEEAYI3"
74         "FQoEGjAYMAoGCCsGAQUFBwMCMAoGCCsGAQUFBwMBMD0GCSsGAQQBgjcVBwQwMC4G"
75         "JisGAQQBgjcVCIfahnWD7tkBgsmFG4G1nmGF9OtggV25+BCGkdB4AgFkAgElMIGH"
76         "BggrBgEFBQcBAQR7MHkwUwYIKwYBBQUHMAKGR2h0dHA6Ly93d3cubWljcm9zb2Z0"
77         "LmNvbS9wa2kvbXNjb3JwL01pY3Jvc29mdCUyMFJTQSUyMFRMUyUyMENBJTIwMDEu"
78         "Y3J0MCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC5tc29jc3AuY29tMB0GA1UdDgQW"
79         "BBSukOod1pztVw1Lx47hPotC/higDTAOBgNVHQ8BAf8EBAMCBLAwgeQGA1UdEQSB"
80         "3DCB2YIKci5iaW5nLmNvbYIUdGhha2EubXNmdHN0YXRpYy5jb22CDnRoYWthLmJp"
81         "bmcuY29tghF0aC5tc2Z0c3RhdGljLmNvbYILdGguYmluZy5jb22CE3Jha2EubXNm"
82         "dHN0YXRpYy5jb22CDXJha2EuYmluZy5jb22CEHIubXNmdHN0YXRpYy5jb22CDWFr"
83         "YW0uYmluZy5jb22CDSoubW0uYmluZy5uZXSCEyouZXhwbGljaXQuYmluZy5uZXSC"
84         "ECouYmluZ3N0YXRpYy5jb22CCiouYmluZy5jb20wgbAGA1UdHwSBqDCBpTCBoqCB"
85         "n6CBnIZNaHR0cDovL21zY3JsLm1pY3Jvc29mdC5jb20vcGtpL21zY29ycC9jcmwv"
86         "TWljcm9zb2Z0JTIwUlNBJTIwVExTJTIwQ0ElMjAwMS5jcmyGS2h0dHA6Ly9jcmwu"
87         "bWljcm9zb2Z0LmNvbS9wa2kvbXNjb3JwL2NybC9NaWNyb3NvZnQlMjBSU0ElMjBU"
88         "TFMlMjBDQSUyMDAxLmNybDBXBgNVHSAEUDBOMEIGCSsGAQQBgjcqATA1MDMGCCsG"
89         "AQUFBwIBFidodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL21zY29ycC9jcHMw"
90         "CAYGZ4EMAQICMB8GA1UdIwQYMBaAFLV2DDARzseSQk1Mx1wsyKkM6AtkMB0GA1Ud"
91         "JQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAgEAUce0"
92         "vFbvYp03JZdLVC7vjMuKOloMCcGQy0CUO3P+T4322/JvQGjgKStq/9FA+GMvqmu0"
93         "yuC4R69o8wlDOhabeJYt2T87BpE31GBHoAYkFE7kdSYfF6FP3fq2FzYcIi8OoKWI"
94         "HHZ1RsIrMKaC3sWxhrmdIpDImdgXFBXlA1CPFafeioF50bQXmjndR0xMNwnpnRNS"
95         "6XNHC9rYARXe7Jj0qk8JYTvLgPGkkaMHmnS7Hn914d1dFIZ2hyVvA+rUtVRQ1oQx"
96         "Q+R+wsRl59Q15MCSIMWnp5Fcg1gcAduGuRCvWKpusJmX3tWjdUSKEQ1UP1qV0eMm"
97         "lh64jNwJ+ejX6psgyWO2a+dFpuD2l8MgFb2gN2RgS4YsPZyDitCBkezHrmsn8txQ"
98         "yaRStDiu6UgS1Z3cqxsNHfct4BdLd7ngzBMY5CacUcCHjwPyoIHYu4G6f84LztQT"
99         "s+uwMhnP9iP/6RiF3xgJMyrIKxUjC0aDjgYyOOVS6VpVLsdVdq0KImHElO5aknT0"
100         "UzvSa5LocKrmAUv+23Dvy/UU94vERy3WelqFzb+ktRgvje0LSsHaIQC8YhokEFx2"
101         "cXdJs7PwmADM4dFCD467C2lsXTzrS4WcvSLfq6xOZ2enl8L6qfQpJ58J49uhUqx3"
102         "lJtG1Q+rccyveDAacyyCp/pDdMQdYLranGFFioA=";
103
104 // Microsoft RSA TLS CA 01, signed by Baltimore CyberTrust Root, expires 08 Oct 2024
105 const std::string TestData::certIM =
106         "MIIFWjCCBEKgAwIBAgIQDxSWXyAgaZlP1ceseIlB4jANBgkqhkiG9w0BAQsFADBa"
107         "MQswCQYDVQQGEwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJl"
108         "clRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTIw"
109         "MDcyMTIzMDAwMFoXDTI0MTAwODA3MDAwMFowTzELMAkGA1UEBhMCVVMxHjAcBgNV"
110         "BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEgMB4GA1UEAxMXTWljcm9zb2Z0IFJT"
111         "QSBUTFMgQ0EgMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqYnfP"
112         "mmOyBoTzkDb0mfMUUavqlQo7Rgb9EUEf/lsGWMk4bgj8T0RIzTqk970eouKVuL5R"
113         "IMW/snBjXXgMQ8ApzWRJCZbar879BV8rKpHoAW4uGJssnNABf2n17j9TiFy6BWy+"
114         "IhVnFILyLNK+W2M3zK9gheiWa2uACKhuvgCca5Vw/OQYErEdG7LBEzFnMzTmJcli"
115         "W1iCdXby/vI/OxbfqkKD4zJtm45DJvC9Dh+hpzqvLMiK5uo/+aXSJY+SqhoIEpz+"
116         "rErHw+uAlKuHFtEjSeeku8eR3+Z5ND9BSqc6JtLqb0bjOHPm5dSRrgt4nnil75bj"
117         "c9j3lWXpBb9PXP9Sp/nPCK+nTQmZwHGjUnqlO9ebAVQD47ZisFonnDAmjrZNVqEX"
118         "F3p7laEHrFMxttYuD81BdOzxAbL9Rb/8MeFGQjE2Qx65qgVfhH+RsYuuD9dUw/3w"
119         "ZAhq05yO6nk07AM9c+AbNtRoEcdZcLCHfMDcbkXKNs5DJncCqXAN6LhXVERCw/us"
120         "G2MmCMLSIx9/kwt8bwhUmitOXc6fpT7SmFvRAtvxg84wUkg4Y/Gx++0j0z6StSeN"
121         "0EJz150jaHG6WV4HUqaWTb98Tm90IgXAU4AW2GBOlzFPiU5IY9jt+eXC2Q6yC/Zp"
122         "TL1LAcnL3Qa/OgLrHN0wiw1KFGD51WRPQ0Sh7QIDAQABo4IBJTCCASEwHQYDVR0O"
123         "BBYEFLV2DDARzseSQk1Mx1wsyKkM6AtkMB8GA1UdIwQYMBaAFOWdWTCCR1jMrPoI"
124         "VDaGezq1BE3wMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYI"
125         "KwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADA0BggrBgEFBQcBAQQoMCYwJAYI"
126         "KwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTA6BgNVHR8EMzAxMC+g"
127         "LaArhilodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vT21uaXJvb3QyMDI1LmNybDAq"
128         "BgNVHSAEIzAhMAgGBmeBDAECATAIBgZngQwBAgIwCwYJKwYBBAGCNyoBMA0GCSqG"
129         "SIb3DQEBCwUAA4IBAQCfK76SZ1vae4qt6P+dTQUO7bYNFUHR5hXcA2D59CJWnEj5"
130         "na7aKzyowKvQupW4yMH9fGNxtsh6iJswRqOOfZYC4/giBO/gNsBvwr8uDW7t1nYo"
131         "DYGHPpvnpxCM2mYfQFHq576/TmeYu1RZY29C4w8xYBlkAA8mDJfRhMCmehk7cN5F"
132         "JtyWRj2cZj/hOoI45TYDBChXpOlLZKIYiG1giY16vhCRi6zmPzEwv+tk156N6cGS"
133         "Vm44jTQ/rs1sa0JSYjzUaYngoFdZC4OfxnIkQvUIA4TOFmPzNPEFdjcZsgbeEz4T"
134         "cGHTBPK4R28F44qIMCtHRV55VMX53ev6P3hRddJb";
135
136 // Baltimore CyberTrust Root, (root CA), expires 12 May 2025
137 const std::string TestData::certRoot =
138         "MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ"
139         "RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD"
140         "VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX"
141         "DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y"
142         "ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy"
143         "VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr"
144         "mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr"
145         "IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK"
146         "mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu"
147         "XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy"
148         "dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye"
149         "jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1"
150         "BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3"
151         "DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92"
152         "9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx"
153         "jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0"
154         "Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz"
155         "ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS"
156         "R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp";
157
158 const std::string TestData::googleCA =
159         "MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG"
160         "A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz"
161         "cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2"
162         "MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV"
163         "BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt"
164         "YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN"
165         "ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE"
166         "BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is"
167         "I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G"
168         "CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do"
169         "lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc"
170         "AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k";
171
172 const std::string TestData::google2nd =
173         "MIIDIzCCAoygAwIBAgIEMAAAAjANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJV"
174         "UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsTLkNsYXNzIDMgUHVi"
175         "bGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNTEzMDAw"
176         "MDAwWhcNMTQwNTEyMjM1OTU5WjBMMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhh"
177         "d3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBD"
178         "QTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1NNn0I0Vf67NMf59HZGhPwtx"
179         "PKzMyGT7Y/wySweUvW+Aui/hBJPAM/wJMyPpC3QrccQDxtLN4i/1CWPN/0ilAL/g"
180         "5/OIty0y3pg25gqtAHvEZEo7hHUD8nCSfQ5i9SGraTaEMXWQ+L/HbIgbBpV8yeWo"
181         "3nWhLHpo39XKHIdYYBkCAwEAAaOB/jCB+zASBgNVHRMBAf8ECDAGAQH/AgEAMAsG"
182         "A1UdDwQEAwIBBjARBglghkgBhvhCAQEEBAMCAQYwKAYDVR0RBCEwH6QdMBsxGTAX"
183         "BgNVBAMTEFByaXZhdGVMYWJlbDMtMTUwMQYDVR0fBCowKDAmoCSgIoYgaHR0cDov"
184         "L2NybC52ZXJpc2lnbi5jb20vcGNhMy5jcmwwMgYIKwYBBQUHAQEEJjAkMCIGCCsG"
185         "AQUFBzABhhZodHRwOi8vb2NzcC50aGF3dGUuY29tMDQGA1UdJQQtMCsGCCsGAQUF"
186         "BwMBBggrBgEFBQcDAgYJYIZIAYb4QgQBBgpghkgBhvhFAQgBMA0GCSqGSIb3DQEB"
187         "BQUAA4GBAFWsY+reod3SkF+fC852vhNRj5PZBSvIG3dLrWlQoe7e3P3bB+noOZTc"
188         "q3J5Lwa/q4FwxKjt6lM07e8eU9kGx1Yr0Vz00YqOtCuxN5BICEIlxT6Ky3/rbwTR"
189         "bcV0oveifHtgPHfNDs5IAn8BL7abN+AqKjbc1YXWrOU/VG+WHgWv";
190
191 const std::string TestData::google3rd =
192         "MIIDIjCCAougAwIBAgIQK59+5colpiUUIEeCdTqbuTANBgkqhkiG9w0BAQUFADBM"
193         "MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg"
194         "THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0xMTEwMjYwMDAwMDBaFw0x"
195         "MzA5MzAyMzU5NTlaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh"
196         "MRYwFAYDVQQHFA1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKFApHb29nbGUgSW5jMRgw"
197         "FgYDVQQDFA9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ"
198         "AoGBAK85FZho5JL+T0/xu/8NLrD+Jaq9aARnJ+psQ0ynbcvIj36B7ocmJRASVDOe"
199         "qj2bj46Ss0sB4/lKKcMP/ay300yXKT9pVc9wgwSvLgRudNYPFwn+niAkJOPHaJys"
200         "Eb2S5LIbCfICMrtVGy0WXzASI+JMSo3C2j/huL/3OrGGvvDFAgMBAAGjgecwgeQw"
201         "DAYDVR0TAQH/BAIwADA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vY3JsLnRoYXd0"
202         "ZS5jb20vVGhhd3RlU0dDQ0EuY3JsMCgGA1UdJQQhMB8GCCsGAQUFBwMBBggrBgEF"
203         "BQcDAgYJYIZIAYb4QgQBMHIGCCsGAQUFBwEBBGYwZDAiBggrBgEFBQcwAYYWaHR0"
204         "cDovL29jc3AudGhhd3RlLmNvbTA+BggrBgEFBQcwAoYyaHR0cDovL3d3dy50aGF3"
205         "dGUuY29tL3JlcG9zaXRvcnkvVGhhd3RlX1NHQ19DQS5jcnQwDQYJKoZIhvcNAQEF"
206         "BQADgYEANYARzVI+hCn7wSjhIOUCj19xZVgdYnJXPOZeJWHTy60i+NiBpOf0rnzZ"
207         "wW2qkw1iB5/yZ0eZNDNPPQJ09IHWOAgh6OKh+gVBnJzJ+fPIo+4NpddQVF4vfXm3"
208         "fgp8tuIsqK7+lNfNFjBxBKqeecPStiSnJavwSI4vw6e7UN0Pz7A=";
209
210 const std::string TestData::certVerisign =
211         "MIIG+DCCBeCgAwIBAgIQU9K++SSnJF6DygHkbKokdzANBgkqhkiG9w0BAQUFADCB"
212         "vjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL"
213         "ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2Ug"
214         "YXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE4MDYGA1UEAxMv"
215         "VmVyaVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBTR0MgQ0Ew"
216         "HhcNMTAwNTI2MDAwMDAwWhcNMTIwNTI1MjM1OTU5WjCCASkxEzARBgsrBgEEAYI3"
217         "PAIBAxMCVVMxGTAXBgsrBgEEAYI3PAIBAhMIRGVsYXdhcmUxGzAZBgNVBA8TElYx"
218         "LjAsIENsYXVzZSA1LihiKTEQMA4GA1UEBRMHMjQ5Nzg4NjELMAkGA1UEBhMCVVMx"
219         "DjAMBgNVBBEUBTk0MDQzMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHFA1N"
220         "b3VudGFpbiBWaWV3MSIwIAYDVQQJFBk0ODcgRWFzdCBNaWRkbGVmaWVsZCBSb2Fk"
221         "MRcwFQYDVQQKFA5WZXJpU2lnbiwgSW5jLjEmMCQGA1UECxQdIFByb2R1Y3Rpb24g"
222         "U2VjdXJpdHkgU2VydmljZXMxGTAXBgNVBAMUEHd3dy52ZXJpc2lnbi5jb20wggEi"
223         "MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCj+PvvK+fZOXwno0yT/OTy2Zm9"
224         "ehnZjTtO/X2IWBEa3jG30C52uHFQI4NmXiQVNvJHkBaAj0ilVjvGdxXmkyyFsugt"
225         "IWOTZ8pSKdX1tmGFIon6Ko9+lBFkVkudA1ogAUbtTB8IcdeOlpK78T4SjdVMhY18"
226         "150YzSw6hRKlw52wBaDxtGZElvOth41K7TUcaDnQVzz5SBPW5MUhi7AWrdoSk17O"
227         "BozOzmB/jkYDVDnwLcbR89SLHEOle/idSYSDQUmab3y0JS8RyQV1+DB70mnFALnD"
228         "fLiL47nMQQCGxXgp5voQ2YmSXhevKmEJ9vvtC6C7yv2W6yomfS/weUEce9pvAgMB"
229         "AAGjggKCMIICfjCBiwYDVR0RBIGDMIGAghB3d3cudmVyaXNpZ24uY29tggx2ZXJp"
230         "c2lnbi5jb22CEHd3dy52ZXJpc2lnbi5uZXSCDHZlcmlzaWduLm5ldIIRd3d3LnZl"
231         "cmlzaWduLm1vYmmCDXZlcmlzaWduLm1vYmmCD3d3dy52ZXJpc2lnbi5ldYILdmVy"
232         "aXNpZ24uZXUwCQYDVR0TBAIwADAdBgNVHQ4EFgQU8oBwK/WBXCZDWi0dbuDgPyTK"
233         "iJIwCwYDVR0PBAQDAgWgMD4GA1UdHwQ3MDUwM6AxoC+GLWh0dHA6Ly9FVkludGwt"
234         "Y3JsLnZlcmlzaWduLmNvbS9FVkludGwyMDA2LmNybDBEBgNVHSAEPTA7MDkGC2CG"
235         "SAGG+EUBBxcGMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNv"
236         "bS9ycGEwKAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEw"
237         "HwYDVR0jBBgwFoAUTkPIHXbvN1N6T/JYb5TzOOLVvd8wdgYIKwYBBQUHAQEEajBo"
238         "MCsGCCsGAQUFBzABhh9odHRwOi8vRVZJbnRsLW9jc3AudmVyaXNpZ24uY29tMDkG"
239         "CCsGAQUFBzAChi1odHRwOi8vRVZJbnRsLWFpYS52ZXJpc2lnbi5jb20vRVZJbnRs"
240         "MjAwNi5jZXIwbgYIKwYBBQUHAQwEYjBgoV6gXDBaMFgwVhYJaW1hZ2UvZ2lmMCEw"
241         "HzAHBgUrDgMCGgQUS2u5KJYGDLvQUjibKaxLB4shBRgwJhYkaHR0cDovL2xvZ28u"
242         "dmVyaXNpZ24uY29tL3ZzbG9nbzEuZ2lmMA0GCSqGSIb3DQEBBQUAA4IBAQB9VZxB"
243         "wDMRGyhFWYkY5rwUVGuDJiGeas2xRJC0G4+riQ7IN7pz2a2BhktmZ5HbxXL4ZEY4"
244         "yMN68DEVErhtKiuL02ng27alhlngadKQzSL8pLdmQ+3jEwm9nva5C/7pbeqy+qGF"
245         "is4IWNYOc4HKNkABxXm5v0ouys8HPNkTLFLep0gLqRXW3gYN2XbKUWMs7z7hJpkY"
246         "GxP8YQSxi513O2dWVCXB8S6erIz9E/bcfdXoCPyQdn42y3IEoJvPvBS3S55fD4+Q"
247         "Q43GPhumSg9a6S3hnyw8DX5OiUGmqgQrtSeDRsNmWqtWizEQbe+fotZpEn/7zYTa"
248         "tk1ni/k5jDH/QeuG";
249
250 const std::string TestData::certGenUriIncluded =
251         "MIIFKjCCBBKgAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBnjELMAkGA1UEBhMCS1Ix"
252         "FDASBgNVBAgMC1NvdXRoIEtvcmVhMQ4wDAYDVQQHDAVTdXdvbjEmMCQGA1UECgwd"
253         "U2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4xDzANBgNVBAsMBk1vYmlsZTEw"
254         "MC4GA1UEAwwnU2Ftc3VuZyBUaXplbiBERVZFTE9QRVIgUHVibGljIENBIENsYXNz"
255         "MB4XDTE2MTAxMTA2MDcxNloXDTE3MTAxMTA2MDcxNlowcDERMA8GA1UEAwwIVGl6"
256         "ZW5TREsxCTAHBgNVBAsMADEJMAcGA1UECgwAMQkwBwYDVQQHDAAxCTAHBgNVBAgM"
257         "ADEJMAcGA1UEBhMAMSQwIgYJKoZIhvcNAQkBFhVqYzgxNS5sZWVAc2Ftc3VuZy5j"
258         "b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCNnAGGY63LX79FH4cq"
259         "WXPCL995W3hZ8l1q9vlJgH00KV7jgPj0NTc2rjKgp/gmbco/vZV8Bp/tbAYDvVRu"
260         "8ObgcjiUDANm9jRJLNu0GBVmhbBQJI5rmZ9xJofJSEHTdaO8aeGfyAvMgdrzyvE1"
261         "QYX/QYKN5/YMMtf/A/uN1d+e20/F89UFsMGC/2LzkUwIJGe9PR1w6x/sb9+y6cap"
262         "XbfjoFN5TEL+nI5qxUNDmTXwglN6HVE3eBfw4Doz9SIKM0RH5vbUPOsmuuw0obHh"
263         "Qh5qpAGNGxzRibUM7Kv9rLpTtD6WpC7beVq8Gbct7zZCzEEEyAvf3vI4aDieOE/E"
264         "0tZxAgMBAAGjggGeMIIBmjCCAZYGA1UdEQSCAY0wggGJhhRVUk46dGl6ZW46cGFj"
265         "a2FnZWlkPYYzVVJOOnRpemVuOmRldmljZWlkPTIuMCNSMXErbFBzR0NNN1BBRVB2"
266         "elVjYzM4eFBDTHc9hjNVUk46dGl6ZW46ZGV2aWNlaWQ9Mi4wI1IycStsUHNHQ003"
267         "UEFFUHZ6VWNjMzh4UENMdz2GM1VSTjp0aXplbjpkZXZpY2VpZD0yLjAjUjNxK2xQ"
268         "c0dDTTdQQUVQdnpVY2MzOHhQQ0x3PYYzVVJOOnRpemVuOmRldmljZWlkPTIuMCNS"
269         "NHErbFBzR0NNN1BBRVB2elVjYzM4eFBDTHc9hjNVUk46dGl6ZW46ZGV2aWNlaWQ9"
270         "Mi4wI1I1cStsUHNHQ003UEFFUHZ6VWNjMzh4UENMdz2GM1VSTjp0aXplbjpkZXZp"
271         "Y2VpZD0yLjAjUjZxK2xQc0dDTTdQQUVQdnpVY2MzOHhQQ0x3PYYzVVJOOnRpemVu"
272         "OmRldmljZWlkPTIuMCNSN3ErbFBzR0NNN1BBRVB2elVjYzM4eFBDTHc9MA0GCSqG"
273         "SIb3DQEBCwUAA4IBAQBJ6uM+XOwTFl39wj5VdvDZr5GzreKG8PUw7L2wLeVxC2h9"
274         "+q3jKannvhrHjCC6mPzjVhYQgoH02ywqDmfMJnE8h1GaF2KGZbuVkL/S02UZ+CwJ"
275         "6J/2dBsakzn1yAjloGq1TQ/AFeN7tEC1ZB88XeLlH6fBKLC41HxLlEKZmyVU281Y"
276         "Hu1gDU7+7BzMY21+RkPKVCJXnyZmv34LL+V199OnLphurx4kfrkRKz2ujTDefzLG"
277         "qERauXufUJ8eWPBgjgxewkQJeUK+pqQ1XbvQA7hHDTxbtbU4sjYHIrDEm2LVJB7b"
278         "+eUuTos3aMVELp3gK4wnj/WoSPJ4hudhGUco4cLT";
279