OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/cert/ev_root_ca_metadata.h" | 5 #include "net/cert/ev_root_ca_metadata.h" |
6 | 6 |
7 #if defined(USE_NSS) || defined(OS_IOS) | 7 #if defined(USE_NSS) || defined(OS_IOS) |
8 #include <cert.h> | 8 #include <cert.h> |
9 #include <pkcs11n.h> | 9 #include <pkcs11n.h> |
10 #include <secerr.h> | 10 #include <secerr.h> |
(...skipping 23 matching lines...) Expand all Loading... |
34 | 34 |
35 // The SHA-1 fingerprint of the root CA certificate, used as a unique | 35 // The SHA-1 fingerprint of the root CA certificate, used as a unique |
36 // identifier for a root CA certificate. | 36 // identifier for a root CA certificate. |
37 SHA1HashValue fingerprint; | 37 SHA1HashValue fingerprint; |
38 | 38 |
39 // The EV policy OIDs of the root CA. | 39 // The EV policy OIDs of the root CA. |
40 const char policy_oids[kMaxOIDsPerCA][kMaxOIDLength]; | 40 const char policy_oids[kMaxOIDsPerCA][kMaxOIDLength]; |
41 }; | 41 }; |
42 | 42 |
43 static const EVMetadata ev_root_ca_metadata[] = { | 43 static const EVMetadata ev_root_ca_metadata[] = { |
44 // AC Camerfirma S.A. Chambers of Commerce Root - 2008 | 44 // AC Camerfirma S.A. Chambers of Commerce Root - 2008 |
45 // https://www.camerfirma.com | 45 // https://www.camerfirma.com |
46 { { { 0x78, 0x6a, 0x74, 0xac, 0x76, 0xab, 0x14, 0x7f, 0x9c, 0x6a, | 46 { |
47 0x30, 0x50, 0xba, 0x9e, 0xa8, 0x7e, 0xfe, 0x9a, 0xce, 0x3c } }, | 47 {{0x78, 0x6a, 0x74, 0xac, 0x76, 0xab, 0x14, 0x7f, 0x9c, 0x6a, 0x30, 0x50, |
48 { // AC Camerfirma uses the last two arcs to track how the private key is | 48 0xba, 0x9e, 0xa8, 0x7e, 0xfe, 0x9a, 0xce, 0x3c}}, |
| 49 {// AC Camerfirma uses the last two arcs to track how the private key is |
49 // managed - the effective verification policy is the same. | 50 // managed - the effective verification policy is the same. |
50 "1.3.6.1.4.1.17326.10.14.2.1.2", | 51 "1.3.6.1.4.1.17326.10.14.2.1.2", "1.3.6.1.4.1.17326.10.14.2.2.2", |
51 "1.3.6.1.4.1.17326.10.14.2.2.2", }, | 52 }, |
52 }, | 53 }, |
53 // AC Camerfirma S.A. Global Chambersign Root - 2008 | 54 // AC Camerfirma S.A. Global Chambersign Root - 2008 |
54 // https://server2.camerfirma.com:8082 | 55 // https://server2.camerfirma.com:8082 |
55 { { { 0x4a, 0xbd, 0xee, 0xec, 0x95, 0x0d, 0x35, 0x9c, 0x89, 0xae, | 56 { |
56 0xc7, 0x52, 0xa1, 0x2c, 0x5b, 0x29, 0xf6, 0xd6, 0xaa, 0x0c } }, | 57 {{0x4a, 0xbd, 0xee, 0xec, 0x95, 0x0d, 0x35, 0x9c, 0x89, 0xae, 0xc7, 0x52, |
57 { // AC Camerfirma uses the last two arcs to track how the private key is | 58 0xa1, 0x2c, 0x5b, 0x29, 0xf6, 0xd6, 0xaa, 0x0c}}, |
| 59 {// AC Camerfirma uses the last two arcs to track how the private key is |
58 // managed - the effective verification policy is the same. | 60 // managed - the effective verification policy is the same. |
59 "1.3.6.1.4.1.17326.10.8.12.1.2", | 61 "1.3.6.1.4.1.17326.10.8.12.1.2", "1.3.6.1.4.1.17326.10.8.12.2.2", |
60 "1.3.6.1.4.1.17326.10.8.12.2.2", }, | 62 }, |
61 }, | 63 }, |
62 // AddTrust External CA Root | 64 // AddTrust External CA Root |
63 // https://addtrustexternalcaroot-ev.comodoca.com | 65 // https://addtrustexternalcaroot-ev.comodoca.com |
64 { { { 0x02, 0xfa, 0xf3, 0xe2, 0x91, 0x43, 0x54, 0x68, 0x60, 0x78, | 66 { |
65 0x57, 0x69, 0x4d, 0xf5, 0xe4, 0x5b, 0x68, 0x85, 0x18, 0x68 } }, | 67 {{0x02, 0xfa, 0xf3, 0xe2, 0x91, 0x43, 0x54, 0x68, 0x60, 0x78, 0x57, 0x69, |
66 { | 68 0x4d, 0xf5, 0xe4, 0x5b, 0x68, 0x85, 0x18, 0x68}}, |
| 69 { |
67 "1.3.6.1.4.1.6449.1.2.1.5.1", | 70 "1.3.6.1.4.1.6449.1.2.1.5.1", |
68 // This is the Network Solutions EV OID. However, this root | 71 // This is the Network Solutions EV OID. However, this root |
69 // cross-certifies NetSol and so we need it here too. | 72 // cross-certifies NetSol and so we need it here too. |
70 "1.3.6.1.4.1.782.1.2.1.8.1", | 73 "1.3.6.1.4.1.782.1.2.1.8.1", |
71 }, | 74 }, |
72 }, | 75 }, |
73 // AffirmTrust Commercial | 76 // AffirmTrust Commercial |
74 // https://commercial.affirmtrust.com/ | 77 // https://commercial.affirmtrust.com/ |
75 { { { 0xf9, 0xb5, 0xb6, 0x32, 0x45, 0x5f, 0x9c, 0xbe, 0xec, 0x57, | 78 { |
76 0x5f, 0x80, 0xdc, 0xe9, 0x6e, 0x2c, 0xc7, 0xb2, 0x78, 0xb7 } }, | 79 {{0xf9, 0xb5, 0xb6, 0x32, 0x45, 0x5f, 0x9c, 0xbe, 0xec, 0x57, 0x5f, 0x80, |
77 {"1.3.6.1.4.1.34697.2.1", ""}, | 80 0xdc, 0xe9, 0x6e, 0x2c, 0xc7, 0xb2, 0x78, 0xb7}}, |
78 }, | 81 {"1.3.6.1.4.1.34697.2.1", ""}, |
79 // AffirmTrust Networking | 82 }, |
80 // https://networking.affirmtrust.com:4431 | 83 // AffirmTrust Networking |
81 { { { 0x29, 0x36, 0x21, 0x02, 0x8b, 0x20, 0xed, 0x02, 0xf5, 0x66, | 84 // https://networking.affirmtrust.com:4431 |
82 0xc5, 0x32, 0xd1, 0xd6, 0xed, 0x90, 0x9f, 0x45, 0x00, 0x2f } }, | 85 { |
83 {"1.3.6.1.4.1.34697.2.2", ""}, | 86 {{0x29, 0x36, 0x21, 0x02, 0x8b, 0x20, 0xed, 0x02, 0xf5, 0x66, 0xc5, 0x32, |
84 }, | 87 0xd1, 0xd6, 0xed, 0x90, 0x9f, 0x45, 0x00, 0x2f}}, |
85 // AffirmTrust Premium | 88 {"1.3.6.1.4.1.34697.2.2", ""}, |
86 // https://premium.affirmtrust.com:4432/ | 89 }, |
87 { { { 0xd8, 0xa6, 0x33, 0x2c, 0xe0, 0x03, 0x6f, 0xb1, 0x85, 0xf6, | 90 // AffirmTrust Premium |
88 0x63, 0x4f, 0x7d, 0x6a, 0x06, 0x65, 0x26, 0x32, 0x28, 0x27 } }, | 91 // https://premium.affirmtrust.com:4432/ |
89 {"1.3.6.1.4.1.34697.2.3", ""}, | 92 { |
90 }, | 93 {{0xd8, 0xa6, 0x33, 0x2c, 0xe0, 0x03, 0x6f, 0xb1, 0x85, 0xf6, 0x63, 0x4f, |
91 // AffirmTrust Premium ECC | 94 0x7d, 0x6a, 0x06, 0x65, 0x26, 0x32, 0x28, 0x27}}, |
92 // https://premiumecc.affirmtrust.com:4433/ | 95 {"1.3.6.1.4.1.34697.2.3", ""}, |
93 { { { 0xb8, 0x23, 0x6b, 0x00, 0x2f, 0x1d, 0x16, 0x86, 0x53, 0x01, | 96 }, |
94 0x55, 0x6c, 0x11, 0xa4, 0x37, 0xca, 0xeb, 0xff, 0xc3, 0xbb } }, | 97 // AffirmTrust Premium ECC |
95 {"1.3.6.1.4.1.34697.2.4", ""}, | 98 // https://premiumecc.affirmtrust.com:4433/ |
96 }, | 99 { |
97 // Buypass Class 3 CA 1 | 100 {{0xb8, 0x23, 0x6b, 0x00, 0x2f, 0x1d, 0x16, 0x86, 0x53, 0x01, 0x55, 0x6c, |
98 // https://valid.evident.ca13.ssl.buypass.no/ | 101 0x11, 0xa4, 0x37, 0xca, 0xeb, 0xff, 0xc3, 0xbb}}, |
99 { { { 0x61, 0x57, 0x3A, 0x11, 0xDF, 0x0E, 0xD8, 0x7E, 0xD5, 0x92, | 102 {"1.3.6.1.4.1.34697.2.4", ""}, |
100 0x65, 0x22, 0xEA, 0xD0, 0x56, 0xD7, 0x44, 0xB3, 0x23, 0x71 } }, | 103 }, |
101 {"2.16.578.1.26.1.3.3", ""}, | 104 // Buypass Class 3 CA 1 |
102 }, | 105 // https://valid.evident.ca13.ssl.buypass.no/ |
103 // Buypass Class 3 Root CA | 106 { |
104 // https://valid.evident.ca23.ssl.buypass.no/ | 107 {{0x61, 0x57, 0x3A, 0x11, 0xDF, 0x0E, 0xD8, 0x7E, 0xD5, 0x92, 0x65, 0x22, |
105 { { { 0xDA, 0xFA, 0xF7, 0xFA, 0x66, 0x84, 0xEC, 0x06, 0x8F, 0x14, | 108 0xEA, 0xD0, 0x56, 0xD7, 0x44, 0xB3, 0x23, 0x71}}, |
106 0x50, 0xBD, 0xC7, 0xC2, 0x81, 0xA5, 0xBC, 0xA9, 0x64, 0x57 } }, | 109 {"2.16.578.1.26.1.3.3", ""}, |
107 {"2.16.578.1.26.1.3.3", ""}, | 110 }, |
108 }, | 111 // Buypass Class 3 Root CA |
109 // CertPlus Class 2 Primary CA (KEYNECTIS) | 112 // https://valid.evident.ca23.ssl.buypass.no/ |
110 // https://www.keynectis.com/ | 113 { |
111 { { { 0x74, 0x20, 0x74, 0x41, 0x72, 0x9c, 0xdd, 0x92, 0xec, 0x79, | 114 {{0xDA, 0xFA, 0xF7, 0xFA, 0x66, 0x84, 0xEC, 0x06, 0x8F, 0x14, 0x50, 0xBD, |
112 0x31, 0xd8, 0x23, 0x10, 0x8d, 0xc2, 0x81, 0x92, 0xe2, 0xbb } }, | 115 0xC7, 0xC2, 0x81, 0xA5, 0xBC, 0xA9, 0x64, 0x57}}, |
113 {"1.3.6.1.4.1.22234.2.5.2.3.1", ""}, | 116 {"2.16.578.1.26.1.3.3", ""}, |
114 }, | 117 }, |
115 // Certum Trusted Network CA | 118 // CertPlus Class 2 Primary CA (KEYNECTIS) |
116 // https://juice.certum.pl/ | 119 // https://www.keynectis.com/ |
117 { { { 0x07, 0xe0, 0x32, 0xe0, 0x20, 0xb7, 0x2c, 0x3f, 0x19, 0x2f, | 120 { |
118 0x06, 0x28, 0xa2, 0x59, 0x3a, 0x19, 0xa7, 0x0f, 0x06, 0x9e } }, | 121 {{0x74, 0x20, 0x74, 0x41, 0x72, 0x9c, 0xdd, 0x92, 0xec, 0x79, 0x31, 0xd8, |
119 {"1.2.616.1.113527.2.5.1.1", ""}, | 122 0x23, 0x10, 0x8d, 0xc2, 0x81, 0x92, 0xe2, 0xbb}}, |
120 }, | 123 {"1.3.6.1.4.1.22234.2.5.2.3.1", ""}, |
121 // China Internet Network Information Center EV Certificates Root | 124 }, |
122 // https://evdemo.cnnic.cn/ | 125 // Certum Trusted Network CA |
123 { { { 0x4F, 0x99, 0xAA, 0x93, 0xFB, 0x2B, 0xD1, 0x37, 0x26, 0xA1, | 126 // https://juice.certum.pl/ |
124 0x99, 0x4A, 0xCE, 0x7F, 0xF0, 0x05, 0xF2, 0x93, 0x5D, 0x1E } }, | 127 { |
125 {"1.3.6.1.4.1.29836.1.10", ""}, | 128 {{0x07, 0xe0, 0x32, 0xe0, 0x20, 0xb7, 0x2c, 0x3f, 0x19, 0x2f, 0x06, 0x28, |
126 }, | 129 0xa2, 0x59, 0x3a, 0x19, 0xa7, 0x0f, 0x06, 0x9e}}, |
127 // COMODO Certification Authority | 130 {"1.2.616.1.113527.2.5.1.1", ""}, |
128 // https://secure.comodo.com/ | 131 }, |
129 { { { 0x66, 0x31, 0xbf, 0x9e, 0xf7, 0x4f, 0x9e, 0xb6, 0xc9, 0xd5, | 132 // China Internet Network Information Center EV Certificates Root |
130 0xa6, 0x0c, 0xba, 0x6a, 0xbe, 0xd1, 0xf7, 0xbd, 0xef, 0x7b } }, | 133 // https://evdemo.cnnic.cn/ |
131 {"1.3.6.1.4.1.6449.1.2.1.5.1", ""}, | 134 { |
132 }, | 135 {{0x4F, 0x99, 0xAA, 0x93, 0xFB, 0x2B, 0xD1, 0x37, 0x26, 0xA1, 0x99, 0x4A, |
133 // COMODO Certification Authority (reissued certificate with NotBefore of Jan | 136 0xCE, 0x7F, 0xF0, 0x05, 0xF2, 0x93, 0x5D, 0x1E}}, |
134 // 1 00:00:00 2011 GMT) | 137 {"1.3.6.1.4.1.29836.1.10", ""}, |
135 // https://secure.comodo.com/ | 138 }, |
136 { { { 0xee, 0x86, 0x93, 0x87, 0xff, 0xfd, 0x83, 0x49, 0xab, 0x5a, | 139 // COMODO Certification Authority |
137 0xd1, 0x43, 0x22, 0x58, 0x87, 0x89, 0xa4, 0x57, 0xb0, 0x12 } }, | 140 // https://secure.comodo.com/ |
138 {"1.3.6.1.4.1.6449.1.2.1.5.1", ""}, | 141 { |
139 }, | 142 {{0x66, 0x31, 0xbf, 0x9e, 0xf7, 0x4f, 0x9e, 0xb6, 0xc9, 0xd5, 0xa6, 0x0c, |
140 // COMODO ECC Certification Authority | 143 0xba, 0x6a, 0xbe, 0xd1, 0xf7, 0xbd, 0xef, 0x7b}}, |
141 // https://comodoecccertificationauthority-ev.comodoca.com/ | 144 {"1.3.6.1.4.1.6449.1.2.1.5.1", ""}, |
142 { { { 0x9f, 0x74, 0x4e, 0x9f, 0x2b, 0x4d, 0xba, 0xec, 0x0f, 0x31, | 145 }, |
143 0x2c, 0x50, 0xb6, 0x56, 0x3b, 0x8e, 0x2d, 0x93, 0xc3, 0x11 } }, | 146 // COMODO Certification Authority (reissued certificate with NotBefore of |
144 {"1.3.6.1.4.1.6449.1.2.1.5.1", ""}, | 147 // Jan |
145 }, | 148 // 1 00:00:00 2011 GMT) |
146 // Cybertrust Global Root | 149 // https://secure.comodo.com/ |
147 // https://evup.cybertrust.ne.jp/ctj-ev-upgrader/evseal.gif | 150 { |
148 { { { 0x5f, 0x43, 0xe5, 0xb1, 0xbf, 0xf8, 0x78, 0x8c, 0xac, 0x1c, | 151 {{0xee, 0x86, 0x93, 0x87, 0xff, 0xfd, 0x83, 0x49, 0xab, 0x5a, 0xd1, 0x43, |
149 0xc7, 0xca, 0x4a, 0x9a, 0xc6, 0x22, 0x2b, 0xcc, 0x34, 0xc6 } }, | 152 0x22, 0x58, 0x87, 0x89, 0xa4, 0x57, 0xb0, 0x12}}, |
150 {"1.3.6.1.4.1.6334.1.100.1", ""}, | 153 {"1.3.6.1.4.1.6449.1.2.1.5.1", ""}, |
151 }, | 154 }, |
152 // DigiCert High Assurance EV Root CA | 155 // COMODO ECC Certification Authority |
153 // https://www.digicert.com | 156 // https://comodoecccertificationauthority-ev.comodoca.com/ |
154 { { { 0x5f, 0xb7, 0xee, 0x06, 0x33, 0xe2, 0x59, 0xdb, 0xad, 0x0c, | 157 { |
155 0x4c, 0x9a, 0xe6, 0xd3, 0x8f, 0x1a, 0x61, 0xc7, 0xdc, 0x25 } }, | 158 {{0x9f, 0x74, 0x4e, 0x9f, 0x2b, 0x4d, 0xba, 0xec, 0x0f, 0x31, 0x2c, 0x50, |
156 {"2.16.840.1.114412.2.1", ""}, | 159 0xb6, 0x56, 0x3b, 0x8e, 0x2d, 0x93, 0xc3, 0x11}}, |
157 }, | 160 {"1.3.6.1.4.1.6449.1.2.1.5.1", ""}, |
158 // D-TRUST Root Class 3 CA 2 EV 2009 | 161 }, |
159 // https://certdemo-ev-valid.ssl.d-trust.net/ | 162 // Cybertrust Global Root |
160 { { { 0x96, 0xc9, 0x1b, 0x0b, 0x95, 0xb4, 0x10, 0x98, 0x42, 0xfa, | 163 // https://evup.cybertrust.ne.jp/ctj-ev-upgrader/evseal.gif |
161 0xd0, 0xd8, 0x22, 0x79, 0xfe, 0x60, 0xfa, 0xb9, 0x16, 0x83 } }, | 164 { |
162 {"1.3.6.1.4.1.4788.2.202.1", ""}, | 165 {{0x5f, 0x43, 0xe5, 0xb1, 0xbf, 0xf8, 0x78, 0x8c, 0xac, 0x1c, 0xc7, 0xca, |
163 }, | 166 0x4a, 0x9a, 0xc6, 0x22, 0x2b, 0xcc, 0x34, 0xc6}}, |
164 // Entrust.net Secure Server Certification Authority | 167 {"1.3.6.1.4.1.6334.1.100.1", ""}, |
165 // https://www.entrust.net/ | 168 }, |
166 { { { 0x99, 0xa6, 0x9b, 0xe6, 0x1a, 0xfe, 0x88, 0x6b, 0x4d, 0x2b, | 169 // DigiCert High Assurance EV Root CA |
167 0x82, 0x00, 0x7c, 0xb8, 0x54, 0xfc, 0x31, 0x7e, 0x15, 0x39 } }, | 170 // https://www.digicert.com |
168 {"2.16.840.1.114028.10.1.2", ""}, | 171 { |
169 }, | 172 {{0x5f, 0xb7, 0xee, 0x06, 0x33, 0xe2, 0x59, 0xdb, 0xad, 0x0c, 0x4c, 0x9a, |
170 // Entrust Root Certification Authority | 173 0xe6, 0xd3, 0x8f, 0x1a, 0x61, 0xc7, 0xdc, 0x25}}, |
171 // https://www.entrust.net/ | 174 {"2.16.840.1.114412.2.1", ""}, |
172 { { { 0xb3, 0x1e, 0xb1, 0xb7, 0x40, 0xe3, 0x6c, 0x84, 0x02, 0xda, | 175 }, |
173 0xdc, 0x37, 0xd4, 0x4d, 0xf5, 0xd4, 0x67, 0x49, 0x52, 0xf9 } }, | 176 // D-TRUST Root Class 3 CA 2 EV 2009 |
174 {"2.16.840.1.114028.10.1.2", ""}, | 177 // https://certdemo-ev-valid.ssl.d-trust.net/ |
175 }, | 178 { |
176 // Equifax Secure Certificate Authority (GeoTrust) | 179 {{0x96, 0xc9, 0x1b, 0x0b, 0x95, 0xb4, 0x10, 0x98, 0x42, 0xfa, 0xd0, 0xd8, |
177 // https://www.geotrust.com/ | 180 0x22, 0x79, 0xfe, 0x60, 0xfa, 0xb9, 0x16, 0x83}}, |
178 { { { 0xd2, 0x32, 0x09, 0xad, 0x23, 0xd3, 0x14, 0x23, 0x21, 0x74, | 181 {"1.3.6.1.4.1.4788.2.202.1", ""}, |
179 0xe4, 0x0d, 0x7f, 0x9d, 0x62, 0x13, 0x97, 0x86, 0x63, 0x3a } }, | 182 }, |
180 {"1.3.6.1.4.1.14370.1.6", ""}, | 183 // Entrust.net Secure Server Certification Authority |
181 }, | 184 // https://www.entrust.net/ |
182 // E-Tugra Certification Authority | 185 { |
183 // https://sslev.e-tugra.com.tr | 186 {{0x99, 0xa6, 0x9b, 0xe6, 0x1a, 0xfe, 0x88, 0x6b, 0x4d, 0x2b, 0x82, 0x00, |
184 { { { 0x51, 0xC6, 0xE7, 0x08, 0x49, 0x06, 0x6E, 0xF3, 0x92, 0xD4, | 187 0x7c, 0xb8, 0x54, 0xfc, 0x31, 0x7e, 0x15, 0x39}}, |
185 0x5C, 0xA0, 0x0D, 0x6D, 0xA3, 0x62, 0x8F, 0xC3, 0x52, 0x39 } }, | 188 {"2.16.840.1.114028.10.1.2", ""}, |
186 {"2.16.792.3.0.4.1.1.4", ""}, | 189 }, |
187 }, | 190 // Entrust Root Certification Authority |
188 // GeoTrust Primary Certification Authority | 191 // https://www.entrust.net/ |
189 // https://www.geotrust.com/ | 192 { |
190 { { { 0x32, 0x3c, 0x11, 0x8e, 0x1b, 0xf7, 0xb8, 0xb6, 0x52, 0x54, | 193 {{0xb3, 0x1e, 0xb1, 0xb7, 0x40, 0xe3, 0x6c, 0x84, 0x02, 0xda, 0xdc, 0x37, |
191 0xe2, 0xe2, 0x10, 0x0d, 0xd6, 0x02, 0x90, 0x37, 0xf0, 0x96 } }, | 194 0xd4, 0x4d, 0xf5, 0xd4, 0x67, 0x49, 0x52, 0xf9}}, |
192 {"1.3.6.1.4.1.14370.1.6", ""}, | 195 {"2.16.840.1.114028.10.1.2", ""}, |
193 }, | 196 }, |
194 // GeoTrust Primary Certification Authority - G2 | 197 // Equifax Secure Certificate Authority (GeoTrust) |
195 { { { 0x8d, 0x17, 0x84, 0xd5, 0x37, 0xf3, 0x03, 0x7d, 0xec, 0x70, | 198 // https://www.geotrust.com/ |
196 0xfe, 0x57, 0x8b, 0x51, 0x9a, 0x99, 0xe6, 0x10, 0xd7, 0xb0 } }, | 199 { |
197 {"1.3.6.1.4.1.14370.1.6", ""}, | 200 {{0xd2, 0x32, 0x09, 0xad, 0x23, 0xd3, 0x14, 0x23, 0x21, 0x74, 0xe4, 0x0d, |
198 }, | 201 0x7f, 0x9d, 0x62, 0x13, 0x97, 0x86, 0x63, 0x3a}}, |
199 // GeoTrust Primary Certification Authority - G3 | 202 {"1.3.6.1.4.1.14370.1.6", ""}, |
200 { { { 0x03, 0x9e, 0xed, 0xb8, 0x0b, 0xe7, 0xa0, 0x3c, 0x69, 0x53, | 203 }, |
201 0x89, 0x3b, 0x20, 0xd2, 0xd9, 0x32, 0x3a, 0x4c, 0x2a, 0xfd } }, | 204 // E-Tugra Certification Authority |
202 {"1.3.6.1.4.1.14370.1.6", ""}, | 205 // https://sslev.e-tugra.com.tr |
203 }, | 206 { |
204 // GlobalSign Root CA - R2 | 207 {{0x51, 0xC6, 0xE7, 0x08, 0x49, 0x06, 0x6E, 0xF3, 0x92, 0xD4, 0x5C, 0xA0, |
205 // https://www.globalsign.com/ | 208 0x0D, 0x6D, 0xA3, 0x62, 0x8F, 0xC3, 0x52, 0x39}}, |
206 { { { 0x75, 0xe0, 0xab, 0xb6, 0x13, 0x85, 0x12, 0x27, 0x1c, 0x04, | 209 {"2.16.792.3.0.4.1.1.4", ""}, |
207 0xf8, 0x5f, 0xdd, 0xde, 0x38, 0xe4, 0xb7, 0x24, 0x2e, 0xfe } }, | 210 }, |
208 {"1.3.6.1.4.1.4146.1.1", ""}, | 211 // GeoTrust Primary Certification Authority |
209 }, | 212 // https://www.geotrust.com/ |
210 // GlobalSign Root CA | 213 { |
211 { { { 0xb1, 0xbc, 0x96, 0x8b, 0xd4, 0xf4, 0x9d, 0x62, 0x2a, 0xa8, | 214 {{0x32, 0x3c, 0x11, 0x8e, 0x1b, 0xf7, 0xb8, 0xb6, 0x52, 0x54, 0xe2, 0xe2, |
212 0x9a, 0x81, 0xf2, 0x15, 0x01, 0x52, 0xa4, 0x1d, 0x82, 0x9c } }, | 215 0x10, 0x0d, 0xd6, 0x02, 0x90, 0x37, 0xf0, 0x96}}, |
213 {"1.3.6.1.4.1.4146.1.1", ""}, | 216 {"1.3.6.1.4.1.14370.1.6", ""}, |
214 }, | 217 }, |
215 // GlobalSign Root CA - R3 | 218 // GeoTrust Primary Certification Authority - G2 |
216 // https://2029.globalsign.com/ | 219 { |
217 { { { 0xd6, 0x9b, 0x56, 0x11, 0x48, 0xf0, 0x1c, 0x77, 0xc5, 0x45, | 220 {{0x8d, 0x17, 0x84, 0xd5, 0x37, 0xf3, 0x03, 0x7d, 0xec, 0x70, 0xfe, 0x57, |
218 0x78, 0xc1, 0x09, 0x26, 0xdf, 0x5b, 0x85, 0x69, 0x76, 0xad } }, | 221 0x8b, 0x51, 0x9a, 0x99, 0xe6, 0x10, 0xd7, 0xb0}}, |
219 {"1.3.6.1.4.1.4146.1.1", ""}, | 222 {"1.3.6.1.4.1.14370.1.6", ""}, |
220 }, | 223 }, |
221 // Go Daddy Class 2 Certification Authority | 224 // GeoTrust Primary Certification Authority - G3 |
222 // https://www.godaddy.com/ | 225 { |
223 { { { 0x27, 0x96, 0xba, 0xe6, 0x3f, 0x18, 0x01, 0xe2, 0x77, 0x26, | 226 {{0x03, 0x9e, 0xed, 0xb8, 0x0b, 0xe7, 0xa0, 0x3c, 0x69, 0x53, 0x89, 0x3b, |
224 0x1b, 0xa0, 0xd7, 0x77, 0x70, 0x02, 0x8f, 0x20, 0xee, 0xe4 } }, | 227 0x20, 0xd2, 0xd9, 0x32, 0x3a, 0x4c, 0x2a, 0xfd}}, |
225 {"2.16.840.1.114413.1.7.23.3", ""}, | 228 {"1.3.6.1.4.1.14370.1.6", ""}, |
226 }, | 229 }, |
227 // Go Daddy Root Certificate Authority - G2 | 230 // GlobalSign Root CA - R2 |
228 // https://valid.gdig2.catest.godaddy.com/ | 231 // https://www.globalsign.com/ |
229 { { { 0x47, 0xbe, 0xab, 0xc9, 0x22, 0xea, 0xe8, 0x0e, 0x78, 0x78, | 232 { |
230 0x34, 0x62, 0xa7, 0x9f, 0x45, 0xc2, 0x54, 0xfd, 0xe6, 0x8b } }, | 233 {{0x75, 0xe0, 0xab, 0xb6, 0x13, 0x85, 0x12, 0x27, 0x1c, 0x04, 0xf8, 0x5f, |
231 {"2.16.840.1.114413.1.7.23.3", ""}, | 234 0xdd, 0xde, 0x38, 0xe4, 0xb7, 0x24, 0x2e, 0xfe}}, |
232 }, | 235 {"1.3.6.1.4.1.4146.1.1", ""}, |
233 // GTE CyberTrust Global Root | 236 }, |
234 // https://www.cybertrust.ne.jp/ | 237 // GlobalSign Root CA |
235 { { { 0x97, 0x81, 0x79, 0x50, 0xd8, 0x1c, 0x96, 0x70, 0xcc, 0x34, | 238 { |
236 0xd8, 0x09, 0xcf, 0x79, 0x44, 0x31, 0x36, 0x7e, 0xf4, 0x74 } }, | 239 {{0xb1, 0xbc, 0x96, 0x8b, 0xd4, 0xf4, 0x9d, 0x62, 0x2a, 0xa8, 0x9a, 0x81, |
237 {"1.3.6.1.4.1.6334.1.100.1", ""}, | 240 0xf2, 0x15, 0x01, 0x52, 0xa4, 0x1d, 0x82, 0x9c}}, |
238 }, | 241 {"1.3.6.1.4.1.4146.1.1", ""}, |
239 // Izenpe.com - SHA256 root | 242 }, |
240 // The first OID is for businesses and the second for government entities. | 243 // GlobalSign Root CA - R3 |
241 // These are the test sites, respectively: | 244 // https://2029.globalsign.com/ |
242 // https://servicios.izenpe.com | 245 { |
243 // https://servicios1.izenpe.com | 246 {{0xd6, 0x9b, 0x56, 0x11, 0x48, 0xf0, 0x1c, 0x77, 0xc5, 0x45, 0x78, 0xc1, |
244 { { { 0x2f, 0x78, 0x3d, 0x25, 0x52, 0x18, 0xa7, 0x4a, 0x65, 0x39, | 247 0x09, 0x26, 0xdf, 0x5b, 0x85, 0x69, 0x76, 0xad}}, |
245 0x71, 0xb5, 0x2c, 0xa2, 0x9c, 0x45, 0x15, 0x6f, 0xe9, 0x19} }, | 248 {"1.3.6.1.4.1.4146.1.1", ""}, |
246 {"1.3.6.1.4.1.14777.6.1.1", "1.3.6.1.4.1.14777.6.1.2"}, | 249 }, |
247 }, | 250 // Go Daddy Class 2 Certification Authority |
248 // Izenpe.com - SHA1 root | 251 // https://www.godaddy.com/ |
249 // Windows XP finds this, SHA1, root instead. The policy OIDs are the same as | 252 { |
250 // for the SHA256 root, above. | 253 {{0x27, 0x96, 0xba, 0xe6, 0x3f, 0x18, 0x01, 0xe2, 0x77, 0x26, 0x1b, 0xa0, |
251 { { { 0x30, 0x77, 0x9e, 0x93, 0x15, 0x02, 0x2e, 0x94, 0x85, 0x6a, | 254 0xd7, 0x77, 0x70, 0x02, 0x8f, 0x20, 0xee, 0xe4}}, |
252 0x3f, 0xf8, 0xbc, 0xf8, 0x15, 0xb0, 0x82, 0xf9, 0xae, 0xfd} }, | 255 {"2.16.840.1.114413.1.7.23.3", ""}, |
253 {"1.3.6.1.4.1.14777.6.1.1", "1.3.6.1.4.1.14777.6.1.2"}, | 256 }, |
254 }, | 257 // Go Daddy Root Certificate Authority - G2 |
255 // Network Solutions Certificate Authority | 258 // https://valid.gdig2.catest.godaddy.com/ |
256 // https://www.networksolutions.com/website-packages/index.jsp | 259 { |
257 { { { 0x74, 0xf8, 0xa3, 0xc3, 0xef, 0xe7, 0xb3, 0x90, 0x06, 0x4b, | 260 {{0x47, 0xbe, 0xab, 0xc9, 0x22, 0xea, 0xe8, 0x0e, 0x78, 0x78, 0x34, 0x62, |
258 0x83, 0x90, 0x3c, 0x21, 0x64, 0x60, 0x20, 0xe5, 0xdf, 0xce } }, | 261 0xa7, 0x9f, 0x45, 0xc2, 0x54, 0xfd, 0xe6, 0x8b}}, |
259 {"1.3.6.1.4.1.782.1.2.1.8.1", ""}, | 262 {"2.16.840.1.114413.1.7.23.3", ""}, |
260 }, | 263 }, |
261 // Network Solutions Certificate Authority (reissued certificate with | 264 // GTE CyberTrust Global Root |
262 // NotBefore of Jan 1 00:00:00 2011 GMT). | 265 // https://www.cybertrust.ne.jp/ |
263 // https://www.networksolutions.com/website-packages/index.jsp | 266 { |
264 { { { 0x71, 0x89, 0x9a, 0x67, 0xbf, 0x33, 0xaf, 0x31, 0xbe, 0xfd, | 267 {{0x97, 0x81, 0x79, 0x50, 0xd8, 0x1c, 0x96, 0x70, 0xcc, 0x34, 0xd8, 0x09, |
265 0xc0, 0x71, 0xf8, 0xf7, 0x33, 0xb1, 0x83, 0x85, 0x63, 0x32 } }, | 268 0xcf, 0x79, 0x44, 0x31, 0x36, 0x7e, 0xf4, 0x74}}, |
266 {"1.3.6.1.4.1.782.1.2.1.8.1", ""}, | 269 {"1.3.6.1.4.1.6334.1.100.1", ""}, |
267 }, | 270 }, |
268 // QuoVadis Root CA 2 | 271 // Izenpe.com - SHA256 root |
269 // https://www.quovadis.bm/ | 272 // The first OID is for businesses and the second for government entities. |
270 { { { 0xca, 0x3a, 0xfb, 0xcf, 0x12, 0x40, 0x36, 0x4b, 0x44, 0xb2, | 273 // These are the test sites, respectively: |
271 0x16, 0x20, 0x88, 0x80, 0x48, 0x39, 0x19, 0x93, 0x7c, 0xf7 } }, | 274 // https://servicios.izenpe.com |
272 {"1.3.6.1.4.1.8024.0.2.100.1.2", ""}, | 275 // https://servicios1.izenpe.com |
273 }, | 276 { |
274 // SecureTrust CA, SecureTrust Corporation | 277 {{0x2f, 0x78, 0x3d, 0x25, 0x52, 0x18, 0xa7, 0x4a, 0x65, 0x39, 0x71, 0xb5, |
275 // https://www.securetrust.com | 278 0x2c, 0xa2, 0x9c, 0x45, 0x15, 0x6f, 0xe9, 0x19}}, |
276 // https://www.trustwave.com/ | 279 {"1.3.6.1.4.1.14777.6.1.1", "1.3.6.1.4.1.14777.6.1.2"}, |
277 { { { 0x87, 0x82, 0xc6, 0xc3, 0x04, 0x35, 0x3b, 0xcf, 0xd2, 0x96, | 280 }, |
278 0x92, 0xd2, 0x59, 0x3e, 0x7d, 0x44, 0xd9, 0x34, 0xff, 0x11 } }, | 281 // Izenpe.com - SHA1 root |
279 {"2.16.840.1.114404.1.1.2.4.1", ""}, | 282 // Windows XP finds this, SHA1, root instead. The policy OIDs are the same |
280 }, | 283 // as |
281 // Secure Global CA, SecureTrust Corporation | 284 // for the SHA256 root, above. |
282 { { { 0x3a, 0x44, 0x73, 0x5a, 0xe5, 0x81, 0x90, 0x1f, 0x24, 0x86, | 285 { |
283 0x61, 0x46, 0x1e, 0x3b, 0x9c, 0xc4, 0x5f, 0xf5, 0x3a, 0x1b } }, | 286 {{0x30, 0x77, 0x9e, 0x93, 0x15, 0x02, 0x2e, 0x94, 0x85, 0x6a, 0x3f, 0xf8, |
284 {"2.16.840.1.114404.1.1.2.4.1", ""}, | 287 0xbc, 0xf8, 0x15, 0xb0, 0x82, 0xf9, 0xae, 0xfd}}, |
285 }, | 288 {"1.3.6.1.4.1.14777.6.1.1", "1.3.6.1.4.1.14777.6.1.2"}, |
286 // Security Communication RootCA1 | 289 }, |
287 // https://www.secomtrust.net/contact/form.html | 290 // Network Solutions Certificate Authority |
288 { { { 0x36, 0xb1, 0x2b, 0x49, 0xf9, 0x81, 0x9e, 0xd7, 0x4c, 0x9e, | 291 // https://www.networksolutions.com/website-packages/index.jsp |
289 0xbc, 0x38, 0x0f, 0xc6, 0x56, 0x8f, 0x5d, 0xac, 0xb2, 0xf7 } }, | 292 { |
290 {"1.2.392.200091.100.721.1", ""}, | 293 {{0x74, 0xf8, 0xa3, 0xc3, 0xef, 0xe7, 0xb3, 0x90, 0x06, 0x4b, 0x83, 0x90, |
291 }, | 294 0x3c, 0x21, 0x64, 0x60, 0x20, 0xe5, 0xdf, 0xce}}, |
292 // Security Communication EV RootCA1 | 295 {"1.3.6.1.4.1.782.1.2.1.8.1", ""}, |
293 // https://www.secomtrust.net/contact/form.html | 296 }, |
294 { { { 0xfe, 0xb8, 0xc4, 0x32, 0xdc, 0xf9, 0x76, 0x9a, 0xce, 0xae, | 297 // Network Solutions Certificate Authority (reissued certificate with |
295 0x3d, 0xd8, 0x90, 0x8f, 0xfd, 0x28, 0x86, 0x65, 0x64, 0x7d } }, | 298 // NotBefore of Jan 1 00:00:00 2011 GMT). |
296 {"1.2.392.200091.100.721.1", ""}, | 299 // https://www.networksolutions.com/website-packages/index.jsp |
297 }, | 300 { |
298 // StartCom Certification Authority | 301 {{0x71, 0x89, 0x9a, 0x67, 0xbf, 0x33, 0xaf, 0x31, 0xbe, 0xfd, 0xc0, 0x71, |
299 // https://www.startssl.com/ | 302 0xf8, 0xf7, 0x33, 0xb1, 0x83, 0x85, 0x63, 0x32}}, |
300 { { { 0x3e, 0x2b, 0xf7, 0xf2, 0x03, 0x1b, 0x96, 0xf3, 0x8c, 0xe6, | 303 {"1.3.6.1.4.1.782.1.2.1.8.1", ""}, |
301 0xc4, 0xd8, 0xa8, 0x5d, 0x3e, 0x2d, 0x58, 0x47, 0x6a, 0x0f } }, | 304 }, |
302 {"1.3.6.1.4.1.23223.1.1.1", ""}, | 305 // QuoVadis Root CA 2 |
303 }, | 306 // https://www.quovadis.bm/ |
304 // Starfield Class 2 Certification Authority | 307 { |
305 // https://www.starfieldtech.com/ | 308 {{0xca, 0x3a, 0xfb, 0xcf, 0x12, 0x40, 0x36, 0x4b, 0x44, 0xb2, 0x16, 0x20, |
306 { { { 0xad, 0x7e, 0x1c, 0x28, 0xb0, 0x64, 0xef, 0x8f, 0x60, 0x03, | 309 0x88, 0x80, 0x48, 0x39, 0x19, 0x93, 0x7c, 0xf7}}, |
307 0x40, 0x20, 0x14, 0xc3, 0xd0, 0xe3, 0x37, 0x0e, 0xb5, 0x8a } }, | 310 {"1.3.6.1.4.1.8024.0.2.100.1.2", ""}, |
308 {"2.16.840.1.114414.1.7.23.3", ""}, | 311 }, |
309 }, | 312 // SecureTrust CA, SecureTrust Corporation |
310 // Starfield Root Certificate Authority - G2 | 313 // https://www.securetrust.com |
311 // https://valid.sfig2.catest.starfieldtech.com/ | 314 // https://www.trustwave.com/ |
312 { { { 0xb5, 0x1c, 0x06, 0x7c, 0xee, 0x2b, 0x0c, 0x3d, 0xf8, 0x55, | 315 { |
313 0xab, 0x2d, 0x92, 0xf4, 0xfe, 0x39, 0xd4, 0xe7, 0x0f, 0x0e } }, | 316 {{0x87, 0x82, 0xc6, 0xc3, 0x04, 0x35, 0x3b, 0xcf, 0xd2, 0x96, 0x92, 0xd2, |
314 {"2.16.840.1.114414.1.7.23.3", ""}, | 317 0x59, 0x3e, 0x7d, 0x44, 0xd9, 0x34, 0xff, 0x11}}, |
315 }, | 318 {"2.16.840.1.114404.1.1.2.4.1", ""}, |
316 // Starfield Services Root Certificate Authority - G2 | 319 }, |
317 // https://valid.sfsg2.catest.starfieldtech.com/ | 320 // Secure Global CA, SecureTrust Corporation |
318 { { { 0x92, 0x5a, 0x8f, 0x8d, 0x2c, 0x6d, 0x04, 0xe0, 0x66, 0x5f, | 321 { |
319 0x59, 0x6a, 0xff, 0x22, 0xd8, 0x63, 0xe8, 0x25, 0x6f, 0x3f } }, | 322 {{0x3a, 0x44, 0x73, 0x5a, 0xe5, 0x81, 0x90, 0x1f, 0x24, 0x86, 0x61, 0x46, |
320 {"2.16.840.1.114414.1.7.24.3", ""}, | 323 0x1e, 0x3b, 0x9c, 0xc4, 0x5f, 0xf5, 0x3a, 0x1b}}, |
321 }, | 324 {"2.16.840.1.114404.1.1.2.4.1", ""}, |
322 // SwissSign Gold CA - G2 | 325 }, |
323 // https://testevg2.swisssign.net/ | 326 // Security Communication RootCA1 |
324 { { { 0xd8, 0xc5, 0x38, 0x8a, 0xb7, 0x30, 0x1b, 0x1b, 0x6e, 0xd4, | 327 // https://www.secomtrust.net/contact/form.html |
325 0x7a, 0xe6, 0x45, 0x25, 0x3a, 0x6f, 0x9f, 0x1a, 0x27, 0x61 } }, | 328 { |
326 {"2.16.756.1.89.1.2.1.1", ""}, | 329 {{0x36, 0xb1, 0x2b, 0x49, 0xf9, 0x81, 0x9e, 0xd7, 0x4c, 0x9e, 0xbc, 0x38, |
327 }, | 330 0x0f, 0xc6, 0x56, 0x8f, 0x5d, 0xac, 0xb2, 0xf7}}, |
328 // Thawte Premium Server CA | 331 {"1.2.392.200091.100.721.1", ""}, |
329 // https://www.thawte.com/ | 332 }, |
330 { { { 0x62, 0x7f, 0x8d, 0x78, 0x27, 0x65, 0x63, 0x99, 0xd2, 0x7d, | 333 // Security Communication EV RootCA1 |
331 0x7f, 0x90, 0x44, 0xc9, 0xfe, 0xb3, 0xf3, 0x3e, 0xfa, 0x9a } }, | 334 // https://www.secomtrust.net/contact/form.html |
332 {"2.16.840.1.113733.1.7.48.1", ""}, | 335 { |
333 }, | 336 {{0xfe, 0xb8, 0xc4, 0x32, 0xdc, 0xf9, 0x76, 0x9a, 0xce, 0xae, 0x3d, 0xd8, |
334 // thawte Primary Root CA | 337 0x90, 0x8f, 0xfd, 0x28, 0x86, 0x65, 0x64, 0x7d}}, |
335 // https://www.thawte.com/ | 338 {"1.2.392.200091.100.721.1", ""}, |
336 { { { 0x91, 0xc6, 0xd6, 0xee, 0x3e, 0x8a, 0xc8, 0x63, 0x84, 0xe5, | 339 }, |
337 0x48, 0xc2, 0x99, 0x29, 0x5c, 0x75, 0x6c, 0x81, 0x7b, 0x81 } }, | 340 // StartCom Certification Authority |
338 {"2.16.840.1.113733.1.7.48.1", ""}, | 341 // https://www.startssl.com/ |
339 }, | 342 { |
340 // thawte Primary Root CA - G2 | 343 {{0x3e, 0x2b, 0xf7, 0xf2, 0x03, 0x1b, 0x96, 0xf3, 0x8c, 0xe6, 0xc4, 0xd8, |
341 { { { 0xaa, 0xdb, 0xbc, 0x22, 0x23, 0x8f, 0xc4, 0x01, 0xa1, 0x27, | 344 0xa8, 0x5d, 0x3e, 0x2d, 0x58, 0x47, 0x6a, 0x0f}}, |
342 0xbb, 0x38, 0xdd, 0xf4, 0x1d, 0xdb, 0x08, 0x9e, 0xf0, 0x12 } }, | 345 {"1.3.6.1.4.1.23223.1.1.1", ""}, |
343 {"2.16.840.1.113733.1.7.48.1", ""}, | 346 }, |
344 }, | 347 // Starfield Class 2 Certification Authority |
345 // thawte Primary Root CA - G3 | 348 // https://www.starfieldtech.com/ |
346 { { { 0xf1, 0x8b, 0x53, 0x8d, 0x1b, 0xe9, 0x03, 0xb6, 0xa6, 0xf0, | 349 { |
347 0x56, 0x43, 0x5b, 0x17, 0x15, 0x89, 0xca, 0xf3, 0x6b, 0xf2 } }, | 350 {{0xad, 0x7e, 0x1c, 0x28, 0xb0, 0x64, 0xef, 0x8f, 0x60, 0x03, 0x40, 0x20, |
348 {"2.16.840.1.113733.1.7.48.1", ""}, | 351 0x14, 0xc3, 0xd0, 0xe3, 0x37, 0x0e, 0xb5, 0x8a}}, |
349 }, | 352 {"2.16.840.1.114414.1.7.23.3", ""}, |
350 // TWCA Global Root CA | 353 }, |
351 // https://evssldemo3.twca.com.tw/index.html | 354 // Starfield Root Certificate Authority - G2 |
352 { { { 0x9C, 0xBB, 0x48, 0x53, 0xF6, 0xA4, 0xF6, 0xD3, 0x52, 0xA4, | 355 // https://valid.sfig2.catest.starfieldtech.com/ |
353 0xE8, 0x32, 0x52, 0x55, 0x60, 0x13, 0xF5, 0xAD, 0xAF, 0x65 } }, | 356 { |
354 {"1.3.6.1.4.1.40869.1.1.22.3", ""}, | 357 {{0xb5, 0x1c, 0x06, 0x7c, 0xee, 0x2b, 0x0c, 0x3d, 0xf8, 0x55, 0xab, 0x2d, |
355 }, | 358 0x92, 0xf4, 0xfe, 0x39, 0xd4, 0xe7, 0x0f, 0x0e}}, |
356 // TWCA Root Certification Authority | 359 {"2.16.840.1.114414.1.7.23.3", ""}, |
357 // https://evssldemo.twca.com.tw/index.html | 360 }, |
358 { { { 0xcf, 0x9e, 0x87, 0x6d, 0xd3, 0xeb, 0xfc, 0x42, 0x26, 0x97, | 361 // Starfield Services Root Certificate Authority - G2 |
359 0xa3, 0xb5, 0xa3, 0x7a, 0xa0, 0x76, 0xa9, 0x06, 0x23, 0x48 } }, | 362 // https://valid.sfsg2.catest.starfieldtech.com/ |
360 {"1.3.6.1.4.1.40869.1.1.22.3", ""}, | 363 { |
361 }, | 364 {{0x92, 0x5a, 0x8f, 0x8d, 0x2c, 0x6d, 0x04, 0xe0, 0x66, 0x5f, 0x59, 0x6a, |
362 // T-TeleSec GlobalRoot Class 3 | 365 0xff, 0x22, 0xd8, 0x63, 0xe8, 0x25, 0x6f, 0x3f}}, |
363 // http://www.telesec.de/ / https://root-class3.test.telesec.de/ | 366 {"2.16.840.1.114414.1.7.24.3", ""}, |
364 { { { 0x55, 0xa6, 0x72, 0x3e, 0xcb, 0xf2, 0xec, 0xcd, 0xc3, 0x23, | 367 }, |
365 0x74, 0x70, 0x19, 0x9d, 0x2a, 0xbe, 0x11, 0xe3, 0x81, 0xd1 } }, | 368 // SwissSign Gold CA - G2 |
366 {"1.3.6.1.4.1.7879.13.24.1", "" }, | 369 // https://testevg2.swisssign.net/ |
367 }, | 370 { |
368 // UTN - DATACorp SGC | 371 {{0xd8, 0xc5, 0x38, 0x8a, 0xb7, 0x30, 0x1b, 0x1b, 0x6e, 0xd4, 0x7a, 0xe6, |
369 { { { 0x58, 0x11, 0x9f, 0x0e, 0x12, 0x82, 0x87, 0xea, 0x50, 0xfd, | 372 0x45, 0x25, 0x3a, 0x6f, 0x9f, 0x1a, 0x27, 0x61}}, |
370 0xd9, 0x87, 0x45, 0x6f, 0x4f, 0x78, 0xdc, 0xfa, 0xd6, 0xd4 } }, | 373 {"2.16.756.1.89.1.2.1.1", ""}, |
371 {"1.3.6.1.4.1.6449.1.2.1.5.1", ""}, | 374 }, |
372 }, | 375 // Thawte Premium Server CA |
373 // UTN-USERFirst-Hardware | 376 // https://www.thawte.com/ |
374 { { { 0x04, 0x83, 0xed, 0x33, 0x99, 0xac, 0x36, 0x08, 0x05, 0x87, | 377 { |
375 0x22, 0xed, 0xbc, 0x5e, 0x46, 0x00, 0xe3, 0xbe, 0xf9, 0xd7 } }, | 378 {{0x62, 0x7f, 0x8d, 0x78, 0x27, 0x65, 0x63, 0x99, 0xd2, 0x7d, 0x7f, 0x90, |
376 { | 379 0x44, 0xc9, 0xfe, 0xb3, 0xf3, 0x3e, 0xfa, 0x9a}}, |
| 380 {"2.16.840.1.113733.1.7.48.1", ""}, |
| 381 }, |
| 382 // thawte Primary Root CA |
| 383 // https://www.thawte.com/ |
| 384 { |
| 385 {{0x91, 0xc6, 0xd6, 0xee, 0x3e, 0x8a, 0xc8, 0x63, 0x84, 0xe5, 0x48, 0xc2, |
| 386 0x99, 0x29, 0x5c, 0x75, 0x6c, 0x81, 0x7b, 0x81}}, |
| 387 {"2.16.840.1.113733.1.7.48.1", ""}, |
| 388 }, |
| 389 // thawte Primary Root CA - G2 |
| 390 { |
| 391 {{0xaa, 0xdb, 0xbc, 0x22, 0x23, 0x8f, 0xc4, 0x01, 0xa1, 0x27, 0xbb, 0x38, |
| 392 0xdd, 0xf4, 0x1d, 0xdb, 0x08, 0x9e, 0xf0, 0x12}}, |
| 393 {"2.16.840.1.113733.1.7.48.1", ""}, |
| 394 }, |
| 395 // thawte Primary Root CA - G3 |
| 396 { |
| 397 {{0xf1, 0x8b, 0x53, 0x8d, 0x1b, 0xe9, 0x03, 0xb6, 0xa6, 0xf0, 0x56, 0x43, |
| 398 0x5b, 0x17, 0x15, 0x89, 0xca, 0xf3, 0x6b, 0xf2}}, |
| 399 {"2.16.840.1.113733.1.7.48.1", ""}, |
| 400 }, |
| 401 // TWCA Global Root CA |
| 402 // https://evssldemo3.twca.com.tw/index.html |
| 403 { |
| 404 {{0x9C, 0xBB, 0x48, 0x53, 0xF6, 0xA4, 0xF6, 0xD3, 0x52, 0xA4, 0xE8, 0x32, |
| 405 0x52, 0x55, 0x60, 0x13, 0xF5, 0xAD, 0xAF, 0x65}}, |
| 406 {"1.3.6.1.4.1.40869.1.1.22.3", ""}, |
| 407 }, |
| 408 // TWCA Root Certification Authority |
| 409 // https://evssldemo.twca.com.tw/index.html |
| 410 { |
| 411 {{0xcf, 0x9e, 0x87, 0x6d, 0xd3, 0xeb, 0xfc, 0x42, 0x26, 0x97, 0xa3, 0xb5, |
| 412 0xa3, 0x7a, 0xa0, 0x76, 0xa9, 0x06, 0x23, 0x48}}, |
| 413 {"1.3.6.1.4.1.40869.1.1.22.3", ""}, |
| 414 }, |
| 415 // T-TeleSec GlobalRoot Class 3 |
| 416 // http://www.telesec.de/ / https://root-class3.test.telesec.de/ |
| 417 { |
| 418 {{0x55, 0xa6, 0x72, 0x3e, 0xcb, 0xf2, 0xec, 0xcd, 0xc3, 0x23, 0x74, 0x70, |
| 419 0x19, 0x9d, 0x2a, 0xbe, 0x11, 0xe3, 0x81, 0xd1}}, |
| 420 {"1.3.6.1.4.1.7879.13.24.1", ""}, |
| 421 }, |
| 422 // UTN - DATACorp SGC |
| 423 { |
| 424 {{0x58, 0x11, 0x9f, 0x0e, 0x12, 0x82, 0x87, 0xea, 0x50, 0xfd, 0xd9, 0x87, |
| 425 0x45, 0x6f, 0x4f, 0x78, 0xdc, 0xfa, 0xd6, 0xd4}}, |
| 426 {"1.3.6.1.4.1.6449.1.2.1.5.1", ""}, |
| 427 }, |
| 428 // UTN-USERFirst-Hardware |
| 429 { |
| 430 {{0x04, 0x83, 0xed, 0x33, 0x99, 0xac, 0x36, 0x08, 0x05, 0x87, 0x22, 0xed, |
| 431 0xbc, 0x5e, 0x46, 0x00, 0xe3, 0xbe, 0xf9, 0xd7}}, |
| 432 { |
377 "1.3.6.1.4.1.6449.1.2.1.5.1", | 433 "1.3.6.1.4.1.6449.1.2.1.5.1", |
378 // This is the Network Solutions EV OID. However, this root | 434 // This is the Network Solutions EV OID. However, this root |
379 // cross-certifies NetSol and so we need it here too. | 435 // cross-certifies NetSol and so we need it here too. |
380 "1.3.6.1.4.1.782.1.2.1.8.1", | 436 "1.3.6.1.4.1.782.1.2.1.8.1", |
381 }, | 437 }, |
382 }, | 438 }, |
383 // ValiCert Class 2 Policy Validation Authority | 439 // ValiCert Class 2 Policy Validation Authority |
384 { { { 0x31, 0x7a, 0x2a, 0xd0, 0x7f, 0x2b, 0x33, 0x5e, 0xf5, 0xa1, | 440 { |
385 0xc3, 0x4e, 0x4b, 0x57, 0xe8, 0xb7, 0xd8, 0xf1, 0xfc, 0xa6 } }, | 441 {{0x31, 0x7a, 0x2a, 0xd0, 0x7f, 0x2b, 0x33, 0x5e, 0xf5, 0xa1, 0xc3, 0x4e, |
386 {"2.16.840.1.114413.1.7.23.3", "2.16.840.1.114414.1.7.23.3"}, | 442 0x4b, 0x57, 0xe8, 0xb7, 0xd8, 0xf1, 0xfc, 0xa6}}, |
387 }, | 443 {"2.16.840.1.114413.1.7.23.3", "2.16.840.1.114414.1.7.23.3"}, |
388 // VeriSign Class 3 Public Primary Certification Authority | 444 }, |
389 // https://www.verisign.com/ | 445 // VeriSign Class 3 Public Primary Certification Authority |
390 { { { 0x74, 0x2c, 0x31, 0x92, 0xe6, 0x07, 0xe4, 0x24, 0xeb, 0x45, | 446 // https://www.verisign.com/ |
391 0x49, 0x54, 0x2b, 0xe1, 0xbb, 0xc5, 0x3e, 0x61, 0x74, 0xe2 } }, | 447 { |
392 {"2.16.840.1.113733.1.7.23.6", ""}, | 448 {{0x74, 0x2c, 0x31, 0x92, 0xe6, 0x07, 0xe4, 0x24, 0xeb, 0x45, 0x49, 0x54, |
393 }, | 449 0x2b, 0xe1, 0xbb, 0xc5, 0x3e, 0x61, 0x74, 0xe2}}, |
394 // VeriSign Class 3 Public Primary Certification Authority - G4 | 450 {"2.16.840.1.113733.1.7.23.6", ""}, |
395 { { { 0x22, 0xD5, 0xD8, 0xDF, 0x8F, 0x02, 0x31, 0xD1, 0x8D, 0xF7, | 451 }, |
396 0x9D, 0xB7, 0xCF, 0x8A, 0x2D, 0x64, 0xC9, 0x3F, 0x6C, 0x3A } }, | 452 // VeriSign Class 3 Public Primary Certification Authority - G4 |
397 {"2.16.840.1.113733.1.7.23.6", ""}, | 453 { |
398 }, | 454 {{0x22, 0xD5, 0xD8, 0xDF, 0x8F, 0x02, 0x31, 0xD1, 0x8D, 0xF7, 0x9D, 0xB7, |
399 // VeriSign Class 3 Public Primary Certification Authority - G5 | 455 0xCF, 0x8A, 0x2D, 0x64, 0xC9, 0x3F, 0x6C, 0x3A}}, |
400 // https://www.verisign.com/ | 456 {"2.16.840.1.113733.1.7.23.6", ""}, |
401 { { { 0x4e, 0xb6, 0xd5, 0x78, 0x49, 0x9b, 0x1c, 0xcf, 0x5f, 0x58, | 457 }, |
402 0x1e, 0xad, 0x56, 0xbe, 0x3d, 0x9b, 0x67, 0x44, 0xa5, 0xe5 } }, | 458 // VeriSign Class 3 Public Primary Certification Authority - G5 |
403 {"2.16.840.1.113733.1.7.23.6", ""}, | 459 // https://www.verisign.com/ |
404 }, | 460 { |
405 // VeriSign Universal Root Certification Authority | 461 {{0x4e, 0xb6, 0xd5, 0x78, 0x49, 0x9b, 0x1c, 0xcf, 0x5f, 0x58, 0x1e, 0xad, |
406 { { { 0x36, 0x79, 0xca, 0x35, 0x66, 0x87, 0x72, 0x30, 0x4d, 0x30, | 462 0x56, 0xbe, 0x3d, 0x9b, 0x67, 0x44, 0xa5, 0xe5}}, |
407 0xa5, 0xfb, 0x87, 0x3b, 0x0f, 0xa7, 0x7b, 0xb7, 0x0d, 0x54 } }, | 463 {"2.16.840.1.113733.1.7.23.6", ""}, |
408 {"2.16.840.1.113733.1.7.23.6", ""}, | 464 }, |
409 }, | 465 // VeriSign Universal Root Certification Authority |
410 // Wells Fargo WellsSecure Public Root Certificate Authority | 466 { |
411 // https://nerys.wellsfargo.com/test.html | 467 {{0x36, 0x79, 0xca, 0x35, 0x66, 0x87, 0x72, 0x30, 0x4d, 0x30, 0xa5, 0xfb, |
412 { { { 0xe7, 0xb4, 0xf6, 0x9d, 0x61, 0xec, 0x90, 0x69, 0xdb, 0x7e, | 468 0x87, 0x3b, 0x0f, 0xa7, 0x7b, 0xb7, 0x0d, 0x54}}, |
413 0x90, 0xa7, 0x40, 0x1a, 0x3c, 0xf4, 0x7d, 0x4f, 0xe8, 0xee } }, | 469 {"2.16.840.1.113733.1.7.23.6", ""}, |
414 {"2.16.840.1.114171.500.9", ""}, | 470 }, |
415 }, | 471 // Wells Fargo WellsSecure Public Root Certificate Authority |
416 // XRamp Global Certification Authority | 472 // https://nerys.wellsfargo.com/test.html |
417 { { { 0xb8, 0x01, 0x86, 0xd1, 0xeb, 0x9c, 0x86, 0xa5, 0x41, 0x04, | 473 { |
418 0xcf, 0x30, 0x54, 0xf3, 0x4c, 0x52, 0xb7, 0xe5, 0x58, 0xc6 } }, | 474 {{0xe7, 0xb4, 0xf6, 0x9d, 0x61, 0xec, 0x90, 0x69, 0xdb, 0x7e, 0x90, 0xa7, |
419 {"2.16.840.1.114404.1.1.2.4.1", ""}, | 475 0x40, 0x1a, 0x3c, 0xf4, 0x7d, 0x4f, 0xe8, 0xee}}, |
420 } | 476 {"2.16.840.1.114171.500.9", ""}, |
421 }; | 477 }, |
| 478 // XRamp Global Certification Authority |
| 479 { |
| 480 {{0xb8, 0x01, 0x86, 0xd1, 0xeb, 0x9c, 0x86, 0xa5, 0x41, 0x04, 0xcf, 0x30, |
| 481 0x54, 0xf3, 0x4c, 0x52, 0xb7, 0xe5, 0x58, 0xc6}}, |
| 482 {"2.16.840.1.114404.1.1.2.4.1", ""}, |
| 483 }}; |
422 | 484 |
423 #endif // defined(USE_NSS) || defined(OS_IOS) || defined(OS_WIN) | 485 #endif // defined(USE_NSS) || defined(OS_IOS) || defined(OS_WIN) |
424 | 486 |
425 static base::LazyInstance<EVRootCAMetadata>::Leaky | 487 static base::LazyInstance<EVRootCAMetadata>::Leaky g_ev_root_ca_metadata = |
426 g_ev_root_ca_metadata = LAZY_INSTANCE_INITIALIZER; | 488 LAZY_INSTANCE_INITIALIZER; |
427 | 489 |
428 // static | 490 // static |
429 EVRootCAMetadata* EVRootCAMetadata::GetInstance() { | 491 EVRootCAMetadata* EVRootCAMetadata::GetInstance() { |
430 return g_ev_root_ca_metadata.Pointer(); | 492 return g_ev_root_ca_metadata.Pointer(); |
431 } | 493 } |
432 | 494 |
433 #if defined(USE_NSS) || defined(OS_IOS) | 495 #if defined(USE_NSS) || defined(OS_IOS) |
434 bool EVRootCAMetadata::IsEVPolicyOID(PolicyOID policy_oid) const { | 496 bool EVRootCAMetadata::IsEVPolicyOID(PolicyOID policy_oid) const { |
435 return policy_oids_.find(policy_oid) != policy_oids_.end(); | 497 return policy_oids_.find(policy_oid) != policy_oids_.end(); |
436 } | 498 } |
437 | 499 |
438 bool EVRootCAMetadata::HasEVPolicyOID( | 500 bool EVRootCAMetadata::HasEVPolicyOID(const SHA1HashValue& fingerprint, |
439 const SHA1HashValue& fingerprint, | 501 PolicyOID policy_oid) const { |
440 PolicyOID policy_oid) const { | |
441 PolicyOIDMap::const_iterator iter = ev_policy_.find(fingerprint); | 502 PolicyOIDMap::const_iterator iter = ev_policy_.find(fingerprint); |
442 if (iter == ev_policy_.end()) | 503 if (iter == ev_policy_.end()) |
443 return false; | 504 return false; |
444 for (std::vector<PolicyOID>::const_iterator | 505 for (std::vector<PolicyOID>::const_iterator j = iter->second.begin(); |
445 j = iter->second.begin(); j != iter->second.end(); ++j) { | 506 j != iter->second.end(); |
| 507 ++j) { |
446 if (*j == policy_oid) | 508 if (*j == policy_oid) |
447 return true; | 509 return true; |
448 } | 510 } |
449 return false; | 511 return false; |
450 } | 512 } |
451 | 513 |
452 bool EVRootCAMetadata::AddEVCA(const SHA1HashValue& fingerprint, | 514 bool EVRootCAMetadata::AddEVCA(const SHA1HashValue& fingerprint, |
453 const char* policy) { | 515 const char* policy) { |
454 if (ev_policy_.find(fingerprint) != ev_policy_.end()) | 516 if (ev_policy_.find(fingerprint) != ev_policy_.end()) |
455 return false; | 517 return false; |
(...skipping 12 matching lines...) Expand all Loading... |
468 PolicyOIDMap::iterator it = ev_policy_.find(fingerprint); | 530 PolicyOIDMap::iterator it = ev_policy_.find(fingerprint); |
469 if (it == ev_policy_.end()) | 531 if (it == ev_policy_.end()) |
470 return false; | 532 return false; |
471 PolicyOID oid = it->second[0]; | 533 PolicyOID oid = it->second[0]; |
472 ev_policy_.erase(it); | 534 ev_policy_.erase(it); |
473 policy_oids_.erase(oid); | 535 policy_oids_.erase(oid); |
474 return true; | 536 return true; |
475 } | 537 } |
476 | 538 |
477 // static | 539 // static |
478 bool EVRootCAMetadata::RegisterOID(const char* policy, | 540 bool EVRootCAMetadata::RegisterOID(const char* policy, PolicyOID* out) { |
479 PolicyOID* out) { | |
480 PRUint8 buf[64]; | 541 PRUint8 buf[64]; |
481 SECItem oid_item; | 542 SECItem oid_item; |
482 oid_item.data = buf; | 543 oid_item.data = buf; |
483 oid_item.len = sizeof(buf); | 544 oid_item.len = sizeof(buf); |
484 SECStatus status = SEC_StringToOID(NULL, &oid_item, policy, 0); | 545 SECStatus status = SEC_StringToOID(NULL, &oid_item, policy, 0); |
485 if (status != SECSuccess) | 546 if (status != SECSuccess) |
486 return false; | 547 return false; |
487 | 548 |
488 // Register the OID. | 549 // Register the OID. |
489 SECOidData od; | 550 SECOidData od; |
(...skipping 13 matching lines...) Expand all Loading... |
503 for (size_t i = 0; i < arraysize(ev_root_ca_metadata); i++) { | 564 for (size_t i = 0; i < arraysize(ev_root_ca_metadata); i++) { |
504 for (size_t j = 0; j < arraysize(ev_root_ca_metadata[i].policy_oids); j++) { | 565 for (size_t j = 0; j < arraysize(ev_root_ca_metadata[i].policy_oids); j++) { |
505 if (ev_root_ca_metadata[i].policy_oids[j][0] == '\0') | 566 if (ev_root_ca_metadata[i].policy_oids[j][0] == '\0') |
506 break; | 567 break; |
507 if (strcmp(policy_oid, ev_root_ca_metadata[i].policy_oids[j]) == 0) | 568 if (strcmp(policy_oid, ev_root_ca_metadata[i].policy_oids[j]) == 0) |
508 return true; | 569 return true; |
509 } | 570 } |
510 } | 571 } |
511 | 572 |
512 for (ExtraEVCAMap::const_iterator i = extra_cas_.begin(); | 573 for (ExtraEVCAMap::const_iterator i = extra_cas_.begin(); |
513 i != extra_cas_.end(); i++) { | 574 i != extra_cas_.end(); |
| 575 i++) { |
514 if (i->second == policy_oid) | 576 if (i->second == policy_oid) |
515 return true; | 577 return true; |
516 } | 578 } |
517 | 579 |
518 return false; | 580 return false; |
519 } | 581 } |
520 | 582 |
521 bool EVRootCAMetadata::HasEVPolicyOID(const SHA1HashValue& fingerprint, | 583 bool EVRootCAMetadata::HasEVPolicyOID(const SHA1HashValue& fingerprint, |
522 PolicyOID policy_oid) const { | 584 PolicyOID policy_oid) const { |
523 for (size_t i = 0; i < arraysize(ev_root_ca_metadata); i++) { | 585 for (size_t i = 0; i < arraysize(ev_root_ca_metadata); i++) { |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
568 return true; | 630 return true; |
569 } | 631 } |
570 | 632 |
571 bool EVRootCAMetadata::RemoveEVCA(const SHA1HashValue& fingerprint) { | 633 bool EVRootCAMetadata::RemoveEVCA(const SHA1HashValue& fingerprint) { |
572 return true; | 634 return true; |
573 } | 635 } |
574 | 636 |
575 #endif | 637 #endif |
576 | 638 |
577 EVRootCAMetadata::EVRootCAMetadata() { | 639 EVRootCAMetadata::EVRootCAMetadata() { |
578 // Constructs the object from the raw metadata in ev_root_ca_metadata. | 640 // Constructs the object from the raw metadata in ev_root_ca_metadata. |
579 #if defined(USE_NSS) || defined(OS_IOS) | 641 #if defined(USE_NSS) || defined(OS_IOS) |
580 crypto::EnsureNSSInit(); | 642 crypto::EnsureNSSInit(); |
581 | 643 |
582 for (size_t i = 0; i < arraysize(ev_root_ca_metadata); i++) { | 644 for (size_t i = 0; i < arraysize(ev_root_ca_metadata); i++) { |
583 const EVMetadata& metadata = ev_root_ca_metadata[i]; | 645 const EVMetadata& metadata = ev_root_ca_metadata[i]; |
584 for (size_t j = 0; j < arraysize(metadata.policy_oids); j++) { | 646 for (size_t j = 0; j < arraysize(metadata.policy_oids); j++) { |
585 if (metadata.policy_oids[j][0] == '\0') | 647 if (metadata.policy_oids[j][0] == '\0') |
586 break; | 648 break; |
587 const char* policy_oid = metadata.policy_oids[j]; | 649 const char* policy_oid = metadata.policy_oids[j]; |
588 | 650 |
589 PolicyOID policy; | 651 PolicyOID policy; |
590 if (!RegisterOID(policy_oid, &policy)) { | 652 if (!RegisterOID(policy_oid, &policy)) { |
591 LOG(ERROR) << "Failed to register OID: " << policy_oid; | 653 LOG(ERROR) << "Failed to register OID: " << policy_oid; |
592 continue; | 654 continue; |
593 } | 655 } |
594 | 656 |
595 ev_policy_[metadata.fingerprint].push_back(policy); | 657 ev_policy_[metadata.fingerprint].push_back(policy); |
596 policy_oids_.insert(policy); | 658 policy_oids_.insert(policy); |
597 } | 659 } |
598 } | 660 } |
599 #endif | 661 #endif |
600 } | 662 } |
601 | 663 |
602 EVRootCAMetadata::~EVRootCAMetadata() { } | 664 EVRootCAMetadata::~EVRootCAMetadata() { |
| 665 } |
603 | 666 |
604 } // namespace net | 667 } // namespace net |
OLD | NEW |