Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 /*****************************************************************************/
6 /* This is an automatically generated file. If you're not */
7 /* PublicKeyPinningService.cpp, you shouldn't be #including it. */
8 /*****************************************************************************/
9 #include <stdint.h>
10 /* AddTrust External Root */
11 static const char kAddTrust_External_RootFingerprint[] =
12 "lCppFqbkrlJ3EcVFAkeip0+44VaoJUymbnOaEUk7tEU=";
14 /* AddTrust Low-Value Services Root */
15 static const char kAddTrust_Low_Value_Services_RootFingerprint[] =
16 "BStocQfshOhzA4JFLsKidFF0XXSFpX1vRk4Np6G2ryo=";
18 /* AddTrust Public Services Root */
19 static const char kAddTrust_Public_Services_RootFingerprint[] =
20 "OGHXtpYfzbISBFb/b8LrdwSxp0G0vZM6g3b14ZFcppg=";
22 /* AddTrust Qualified Certificates Root */
23 static const char kAddTrust_Qualified_Certificates_RootFingerprint[] =
24 "xzr8Lrp3DQy8HuQfJStS6Kk9ErctzOwDHY2DnL+Bink=";
26 /* AffirmTrust Commercial */
27 static const char kAffirmTrust_CommercialFingerprint[] =
28 "bEZLmlsjOl6HTadlwm8EUBDS3c/0V5TwtMfkqvpQFJU=";
30 /* AffirmTrust Networking */
31 static const char kAffirmTrust_NetworkingFingerprint[] =
32 "lAcq0/WPcPkwmOWl9sBMlscQvYSdgxhJGa6Q64kK5AA=";
34 /* AffirmTrust Premium */
35 static const char kAffirmTrust_PremiumFingerprint[] =
36 "x/Q7TPW3FWgpT4IrU3YmBfbd0Vyt7Oc56eLDy6YenWc=";
38 /* AffirmTrust Premium ECC */
39 static const char kAffirmTrust_Premium_ECCFingerprint[] =
40 "MhmwkRT/SVo+tusAwu/qs0ACrl8KVsdnnqCHo/oDfk8=";
42 /* America Online Root Certification Authority 1 */
43 static const char kAmerica_Online_Root_Certification_Authority_1Fingerprint[] =
44 "I4SdCUkj1EpIgbY6sYXpvhWqyO8sMETZNLx/JuLSzWk=";
46 /* America Online Root Certification Authority 2 */
47 static const char kAmerica_Online_Root_Certification_Authority_2Fingerprint[] =
48 "/PfamDYD6IhiAw2WE32OEwMbrftNVsH9TKzDOfa9uyo=";
50 /* Baltimore CyberTrust Root */
51 static const char kBaltimore_CyberTrust_RootFingerprint[] =
52 "Y9mvm0exBk1JoQ57f9Vm28jKo5lFm/woKcVxrYxu80o=";
54 /* COMODO Certification Authority */
55 static const char kCOMODO_Certification_AuthorityFingerprint[] =
56 "AG1751Vd2CAmRCxPGieoDomhmJy4ezREjtIZTBgZbV4=";
58 /* COMODO ECC Certification Authority */
59 static const char kCOMODO_ECC_Certification_AuthorityFingerprint[] =
60 "58qRu/uxh4gFezqAcERupSkRYBlBAvfcw7mEjGPLnNU=";
62 /* Comodo AAA Services root */
63 static const char kComodo_AAA_Services_rootFingerprint[] =
64 "vRU+17BDT2iGsXvOi76E7TQMcTLXAqj0+jGPdW7L1vM=";
66 /* Comodo Secure Services root */
67 static const char kComodo_Secure_Services_rootFingerprint[] =
68 "RpHL/ehKa2BS3b4VK7DCFq4lqG5XR4E9vA8UfzOFcL4=";
70 /* Comodo Trusted Services root */
71 static const char kComodo_Trusted_Services_rootFingerprint[] =
72 "4tiR77c4ZpEF1TDeXtcuKyrD9KZweLU0mz/ayklvXrg=";
74 /* Cybertrust Global Root */
75 static const char kCybertrust_Global_RootFingerprint[] =
76 "foeCwVDOOVL4AuY2AjpdPpW7XWjjPoWtsroXgSXOvxU=";
78 /* DigiCert Assured ID Root CA */
79 static const char kDigiCert_Assured_ID_Root_CAFingerprint[] =
80 "I/Lt/z7ekCWanjD0Cvj5EqXls2lOaThEA0H2Bg4BT/o=";
82 /* DigiCert ECC Secure Server CA */
83 static const char kDigiCert_ECC_Secure_Server_CAFingerprint[] =
84 "PZXN3lRAy+8tBKk2Ox6F7jIlnzr2Yzmwqc3JnyfXoCw=";
86 /* DigiCert Global Root CA */
87 static const char kDigiCert_Global_Root_CAFingerprint[] =
88 "r/mIkG3eEpVdm+u/ko/cwxzOMo1bk4TyHIlByibiA5E=";
90 /* DigiCert High Assurance EV Root CA */
91 static const char kDigiCert_High_Assurance_EV_Root_CAFingerprint[] =
92 "WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18=";
94 /* End Entity Test Cert */
95 static const char kEnd_Entity_Test_CertFingerprint[] =
96 "pVVgLk2kFI2WWRPwDMIX6YmzFhEW4DXQV/U5gP+feGA=";
98 /* Entrust Root Certification Authority */
99 static const char kEntrust_Root_Certification_AuthorityFingerprint[] =
100 "bb+uANN7nNc/j7R95lkXrwDg3d9C286sIMF8AnXuIJU=";
102 /* Entrust.net Premium 2048 Secure Server CA */
103 static const char kEntrust_net_Premium_2048_Secure_Server_CAFingerprint[] =
104 "HqPF5D7WbC2imDpCpKebHpBnhs6fG1hiFBmgBGOofTg=";
106 /* Equifax Secure CA */
107 static const char kEquifax_Secure_CAFingerprint[] =
108 "/1aAzXOlcD2gSBegdf1GJQanNQbEuBoVg+9UlHjSZHY=";
110 /* Equifax Secure Global eBusiness CA */
111 static const char kEquifax_Secure_Global_eBusiness_CAFingerprint[] =
112 "pvH5v4oKndwID7SbHvw9GhwsMtwOE2pbAMlzFvKj3BE=";
114 /* Equifax Secure eBusiness CA 1 */
115 static const char kEquifax_Secure_eBusiness_CA_1Fingerprint[] =
116 "JsGNxu6m9jL2drzrodjCtINS8pwtX82oeOCdy4Mt1uU=";
118 /* GOOGLE_PIN_AlphaSSL_G2 */
119 static const char kGOOGLE_PIN_AlphaSSL_G2Fingerprint[] =
120 "yxgiWGK++SFB9ySwt3M3qpn5HO0ZLFY5D+h+G/vcT/c=";
122 /* GOOGLE_PIN_CryptoCat1 */
123 static const char kGOOGLE_PIN_CryptoCat1Fingerprint[] =
124 "vKaqtTLWmVuXPVJE+0OqN5sRc4VCcSQHI/W3XTDVR24=";
126 /* GOOGLE_PIN_EntrustRootEC1 */
127 static const char kGOOGLE_PIN_EntrustRootEC1Fingerprint[] =
128 "/qK31kX7pz11PB7Jp4cMQOH3sMVh6Se5hb9xGGbjbyI=";
130 /* GOOGLE_PIN_Entrust_G2 */
131 static const char kGOOGLE_PIN_Entrust_G2Fingerprint[] =
132 "du6FkDdMcVQ3u8prumAo6t3i3G27uMP2EOhR8R0at/U=";
134 /* GOOGLE_PIN_Entrust_SSL */
135 static const char kGOOGLE_PIN_Entrust_SSLFingerprint[] =
136 "nsxRNo6G40YPZsKV5JQt1TCA8nseQQr/LRqp1Oa8fnw=";
138 /* GOOGLE_PIN_GoDaddySecure */
139 static const char kGOOGLE_PIN_GoDaddySecureFingerprint[] =
140 "MrZLZnJ6IGPkBm87lYywqu5Xal7O/ZUzmbuIdHMdlYc=";
142 /* GOOGLE_PIN_Libertylavabitcom */
143 static const char kGOOGLE_PIN_LibertylavabitcomFingerprint[] =
144 "WnKzsDXgqPtS1KvtImrhQPqcxfpmfssuI2cSJt4LMks=";
146 /* GOOGLE_PIN_RapidSSL */
147 static const char kGOOGLE_PIN_RapidSSLFingerprint[] =
148 "lT09gPUeQfbYrlxRtpsHrjDblj9Rpz+u7ajfCrg4qDM=";
150 /* GOOGLE_PIN_Tor2web */
151 static const char kGOOGLE_PIN_Tor2webFingerprint[] =
152 "99ogQzjMuUTBkG1ZP7FME0K4kvBEti8Buzu4nZjRItM=";
154 /* GTE CyberTrust Global Root */
155 static const char kGTE_CyberTrust_Global_RootFingerprint[] =
156 "EGn6R6CqT4z3ERscrqNl7q7RC//zJmDe9uBhS/rnCHU=";
158 /* GeoTrust Global CA */
159 static const char kGeoTrust_Global_CAFingerprint[] =
160 "h6801m+z8v3zbgkRHpq6L29Esgfzhj89C1SyUCOQmqU=";
162 /* GeoTrust Global CA 2 */
163 static const char kGeoTrust_Global_CA_2Fingerprint[] =
164 "F3VaXClfPS1y5vAxofB/QAxYi55YKyLxfq4xoVkNEYU=";
166 /* GeoTrust Primary Certification Authority */
167 static const char kGeoTrust_Primary_Certification_AuthorityFingerprint[] =
168 "SQVGZiOrQXi+kqxcvWWE96HhfydlLVqFr4lQTqI5qqo=";
170 /* GeoTrust Primary Certification Authority - G2 */
171 static const char kGeoTrust_Primary_Certification_Authority___G2Fingerprint[] =
172 "vPtEqrmtAhAVcGtBIep2HIHJ6IlnWQ9vlK50TciLePs=";
174 /* GeoTrust Primary Certification Authority - G3 */
175 static const char kGeoTrust_Primary_Certification_Authority___G3Fingerprint[] =
176 "q5hJUnat8eyv8o81xTBIeB5cFxjaucjmelBPT2pRMo8=";
178 /* GeoTrust Universal CA */
179 static const char kGeoTrust_Universal_CAFingerprint[] =
180 "lpkiXF3lLlbN0y3y6W0c/qWqPKC7Us2JM8I7XCdEOCA=";
182 /* GeoTrust Universal CA 2 */
183 static const char kGeoTrust_Universal_CA_2Fingerprint[] =
184 "fKoDRlEkWQxgHlZ+UhSOlSwM/+iQAFMP4NlbbVDqrkE=";
186 /* GlobalSign Root CA */
187 static const char kGlobalSign_Root_CAFingerprint[] =
188 "K87oWBWM9UZfyddvDfoxL+8lpNyoUB2ptGtn0fv6G2Q=";
190 /* GlobalSign Root CA - R2 */
191 static const char kGlobalSign_Root_CA___R2Fingerprint[] =
192 "iie1VXtL7HzAMF+/PVPR9xzT80kQxdZeJ+zduCB3uj0=";
194 /* GlobalSign Root CA - R3 */
195 static const char kGlobalSign_Root_CA___R3Fingerprint[] =
196 "cGuxAXyFXFkWm61cF4HPWX8S0srS9j0aSqN0k4AP+4A=";
198 /* Go Daddy Class 2 CA */
199 static const char kGo_Daddy_Class_2_CAFingerprint[] =
200 "VjLZe/p3W/PJnd6lL8JVNBCGQBZynFLdZSTIqcO0SJ8=";
202 /* Go Daddy Root Certificate Authority - G2 */
203 static const char kGo_Daddy_Root_Certificate_Authority___G2Fingerprint[] =
204 "Ko8tivDrEjiY90yGasP6ZpBU4jwXvHqVvQI0GS3GNdA=";
206 /* GoogleBackup2048 */
207 static const char kGoogleBackup2048Fingerprint[] =
208 "vq7OyjSnqOco9nyMCDGdy77eijM=";
210 /* GoogleG2 */
211 static const char kGoogleG2Fingerprint[] =
212 "Q9rWMO5T+KmAym79hfRqo3mQ4Oo=";
214 /* Network Solutions Certificate Authority */
215 static const char kNetwork_Solutions_Certificate_AuthorityFingerprint[] =
216 "MtGA7THJNVieydu7ciEjuIO1/C3BD5/KOpXXfhv8tTQ=";
218 /* Starfield Class 2 CA */
219 static const char kStarfield_Class_2_CAFingerprint[] =
220 "FfFKxFycfaIz00eRZOgTf+Ne4POK6FgYPwhBDqgqxLQ=";
222 /* Starfield Root Certificate Authority - G2 */
223 static const char kStarfield_Root_Certificate_Authority___G2Fingerprint[] =
224 "gI1os/q0iEpflxrOfRBVDXqVoWN3Tz7Dav/7IT++THQ=";
226 /* Starfield Services Root Certificate Authority - G2 */
227 static const char kStarfield_Services_Root_Certificate_Authority___G2Fingerprint[] =
228 "KwccWaCgrnaw6tsrrSO61FgLacNgG2MMLq8GE6+oP5I=";
230 /* StartCom Certification Authority */
231 static const char kStartCom_Certification_AuthorityFingerprint[] =
232 "5C8kvU039KouVrl52D0eZSGf4Onjo4Khs8tmyTlV3nU=";
234 /* StartCom Certification Authority G2 */
235 static const char kStartCom_Certification_Authority_G2Fingerprint[] =
236 "FSg5faISiQqDCwuVpZlozvI0dzd531GBzxD6ZHU0u2U=";
238 /* TC TrustCenter Class 2 CA II */
239 static const char kTC_TrustCenter_Class_2_CA_IIFingerprint[] =
240 "rPZeHWLLWKK6/W/6tA+4hpnEc5fPXLSD1C1pytNM1Is=";
242 /* TC TrustCenter Class 3 CA II */
243 static const char kTC_TrustCenter_Class_3_CA_IIFingerprint[] =
244 "k5KuIUmSSt435kXbof9L3dzaKykbYJdmnSr6XHo3Jhk=";
246 /* TC TrustCenter Universal CA I */
247 static const char kTC_TrustCenter_Universal_CA_IFingerprint[] =
248 "st71NirT+s0EvSkEekOET3ZwNOpIkvgOVr7mkCQ+JQI=";
250 /* TC TrustCenter Universal CA III */
251 static const char kTC_TrustCenter_Universal_CA_IIIFingerprint[] =
252 "q1zbM1Y5c1bW5pGXPCW4YYtl12qQSG6nqKXBd2f0Zzo=";
254 /* TestSPKI */
255 static const char kTestSPKIFingerprint[] =
256 "AAAAAAAAAAAAAAAAAAAAAAAAAAA=";
258 /* Thawte Premium Server CA */
259 static const char kThawte_Premium_Server_CAFingerprint[] =
260 "9TwiBZgX3Zb0AGUWOdL4V+IQcKWavtkHlADZ9pVQaQA=";
262 /* Thawte Server CA */
263 static const char kThawte_Server_CAFingerprint[] =
264 "nG9qEjy6pO402+zu4kyX1ziHjLQj88InOQNCT10fbdU=";
266 /* Tor1 */
267 static const char kTor1Fingerprint[] =
268 "juNxSTv9UANmpC9kF5GKpmWNx3Y=";
270 /* Tor2 */
271 static const char kTor2Fingerprint[] =
272 "lia43lPolzSPVIq34Dw57uYcLD8=";
274 /* Tor3 */
275 static const char kTor3Fingerprint[] =
276 "rzEyQIKOh77j87n5bjWUNguXF8Y=";
278 /* Twitter1 */
279 static const char kTwitter1Fingerprint[] =
280 "Vv7zwhR9TtOIN/29MFI4cgHld40=";
282 /* UTN DATACorp SGC Root CA */
283 static const char kUTN_DATACorp_SGC_Root_CAFingerprint[] =
284 "QAL80xHQczFWfnG82XHkYEjI3OjRZZcRdTs9qiommvo=";
286 /* UTN USERFirst Email Root CA */
287 static const char kUTN_USERFirst_Email_Root_CAFingerprint[] =
288 "Laj56jRU0hFGRko/nQKNxMf7tXscUsc8KwVyovWZotM=";
290 /* UTN USERFirst Hardware Root CA */
291 static const char kUTN_USERFirst_Hardware_Root_CAFingerprint[] =
292 "TUDnr0MEoJ3of7+YliBMBVFB4/gJsv5zO7IxD9+YoWI=";
294 /* UTN USERFirst Object Root CA */
295 static const char kUTN_USERFirst_Object_Root_CAFingerprint[] =
296 "D+FMJksXu28NZT56cOs2Pb9UvhWAOe3a5cJXEd9IwQM=";
298 /* VeriSign Class 3 Public Primary Certification Authority - G4 */
299 static const char kVeriSign_Class_3_Public_Primary_Certification_Authority___G4Fingerprint[] =
300 "UZJDjsNp1+4M5x9cbbdflB779y5YRBcV6Z6rBMLIrO4=";
302 /* VeriSign Class 3 Public Primary Certification Authority - G5 */
303 static const char kVeriSign_Class_3_Public_Primary_Certification_Authority___G5Fingerprint[] =
304 "JbQbUG5JMJUoI6brnx0x3vZF6jilxsapbXGVfjhN8Fg=";
306 /* VeriSign Universal Root Certification Authority */
307 static const char kVeriSign_Universal_Root_Certification_AuthorityFingerprint[] =
308 "lnsM2T/O9/J84sJFdnrpsFp3awZJ+ZZbYpCWhGloaHI=";
310 /* Verisign Class 1 Public Primary Certification Authority */
311 static const char kVerisign_Class_1_Public_Primary_Certification_AuthorityFingerprint[] =
312 "LclHC+Y+9KzxvYKGCUArt7h72ZY4pkOTTohoLRvowwg=";
314 /* Verisign Class 1 Public Primary Certification Authority - G3 */
315 static const char kVerisign_Class_1_Public_Primary_Certification_Authority___G3Fingerprint[] =
316 "IgduWu9Eu5pBaii30cRDItcFn2D+/6XK9sW+hEeJEwM=";
318 /* Verisign Class 2 Public Primary Certification Authority - G2 */
319 static const char kVerisign_Class_2_Public_Primary_Certification_Authority___G2Fingerprint[] =
320 "2oALgLKofTmeZvoZ1y/fSZg7R9jPMix8eVA6DH4o/q8=";
322 /* Verisign Class 2 Public Primary Certification Authority - G3 */
323 static const char kVerisign_Class_2_Public_Primary_Certification_Authority___G3Fingerprint[] =
324 "cAajgxHlj7GTSEIzIYIQxmEloOSoJq7VOaxWHfv72QM=";
326 /* Verisign Class 3 Public Primary Certification Authority */
327 static const char kVerisign_Class_3_Public_Primary_Certification_AuthorityFingerprint[] =
328 "sRJBQqWhpaKIGcc1NA7/jJ4vgWj+47oYfyU7waOS1+I=";
330 /* Verisign Class 3 Public Primary Certification Authority - G2 */
331 static const char kVerisign_Class_3_Public_Primary_Certification_Authority___G2Fingerprint[] =
332 "AjyBzOjnxk+pQtPBUEhwfTXZu1uH9PVExb8bxWQ68vo=";
334 /* Verisign Class 3 Public Primary Certification Authority - G3 */
335 static const char kVerisign_Class_3_Public_Primary_Certification_Authority___G3Fingerprint[] =
336 "SVqWumuteCQHvVIaALrOZXuzVVVeS7f4FGxxu6V+es4=";
338 /* Verisign Class 4 Public Primary Certification Authority - G3 */
339 static const char kVerisign_Class_4_Public_Primary_Certification_Authority___G3Fingerprint[] =
340 "VnuCEf0g09KD7gzXzgZyy52ZvFtIeljJ1U7Gf3fUqPU=";
342 /* XRamp Global CA Root */
343 static const char kXRamp_Global_CA_RootFingerprint[] =
344 "BRz5+pXkDpuD7a7aaWH2Fox4ecRmAXJHnN1RqwPOpis=";
346 /* thawte Primary Root CA */
347 static const char kthawte_Primary_Root_CAFingerprint[] =
348 "HXXQgxueCIU5TTLHob/bPbwcKOKw6DkfsTWYHbxbqTY=";
350 /* thawte Primary Root CA - G2 */
351 static const char kthawte_Primary_Root_CA___G2Fingerprint[] =
352 "Z9xPMvoQ59AaeaBzqgyeAhLsL/w9d54Kp/nA8OHCyJM=";
354 /* thawte Primary Root CA - G3 */
355 static const char kthawte_Primary_Root_CA___G3Fingerprint[] =
356 "GQbGEk27Q4V40A4GbVBUxsN/D6YCjAVUXgmU7drshik=";
358 /* Pinsets are each an ordered list by the actual value of the fingerprint */
359 struct StaticFingerprints {
360 const size_t size;
361 const char* const* data;
362 };
364 struct StaticPinset {
365 const StaticFingerprints* sha1;
366 const StaticFingerprints* sha256;
367 };
369 /* PreloadedHPKPins.json pinsets */
370 static const char* kPinset_facebook_sha256_Data[] = {
371 kDigiCert_ECC_Secure_Server_CAFingerprint,
372 kVerisign_Class_3_Public_Primary_Certification_Authority___G3Fingerprint,
373 kDigiCert_High_Assurance_EV_Root_CAFingerprint,
374 };
375 static const StaticFingerprints kPinset_facebook_sha256 = {
376 sizeof(kPinset_facebook_sha256_Data) / sizeof(const char*),
377 kPinset_facebook_sha256_Data
378 };
380 static const StaticPinset kPinset_facebook = {
381 nullptr,
382 &kPinset_facebook_sha256
383 };
385 static const char* kPinset_google_root_pems_sha256_Data[] = {
386 kEquifax_Secure_CAFingerprint,
387 kAmerica_Online_Root_Certification_Authority_2Fingerprint,
388 kComodo_Trusted_Services_rootFingerprint,
389 kCOMODO_ECC_Certification_AuthorityFingerprint,
390 kStartCom_Certification_AuthorityFingerprint,
391 kStartCom_Certification_AuthorityFingerprint,
392 kThawte_Premium_Server_CAFingerprint,
393 kCOMODO_Certification_AuthorityFingerprint,
394 kVerisign_Class_3_Public_Primary_Certification_Authority___G2Fingerprint,
395 kXRamp_Global_CA_RootFingerprint,
396 kAddTrust_Low_Value_Services_RootFingerprint,
397 kGeoTrust_Global_CA_2Fingerprint,
398 kStartCom_Certification_Authority_G2Fingerprint,
399 kStarfield_Class_2_CAFingerprint,
400 kthawte_Primary_Root_CA___G3Fingerprint,
401 kthawte_Primary_Root_CAFingerprint,
402 kEntrust_net_Premium_2048_Secure_Server_CAFingerprint,
403 kDigiCert_Assured_ID_Root_CAFingerprint,
404 kAmerica_Online_Root_Certification_Authority_1Fingerprint,
405 kVeriSign_Class_3_Public_Primary_Certification_Authority___G5Fingerprint,
406 kEquifax_Secure_eBusiness_CA_1Fingerprint,
407 kGlobalSign_Root_CAFingerprint,
408 kGo_Daddy_Root_Certificate_Authority___G2Fingerprint,
409 kStarfield_Services_Root_Certificate_Authority___G2Fingerprint,
410 kAffirmTrust_Premium_ECCFingerprint,
411 kNetwork_Solutions_Certificate_AuthorityFingerprint,
412 kAddTrust_Public_Services_RootFingerprint,
413 kUTN_DATACorp_SGC_Root_CAFingerprint,
414 kComodo_Secure_Services_rootFingerprint,
415 kGeoTrust_Primary_Certification_AuthorityFingerprint,
416 kVerisign_Class_3_Public_Primary_Certification_Authority___G3Fingerprint,
417 kUTN_USERFirst_Hardware_Root_CAFingerprint,
418 kVeriSign_Class_3_Public_Primary_Certification_Authority___G4Fingerprint,
419 kGo_Daddy_Class_2_CAFingerprint,
420 kVerisign_Class_4_Public_Primary_Certification_Authority___G3Fingerprint,
421 kDigiCert_High_Assurance_EV_Root_CAFingerprint,
422 kBaltimore_CyberTrust_RootFingerprint,
423 kthawte_Primary_Root_CA___G2Fingerprint,
424 kAffirmTrust_CommercialFingerprint,
425 kEntrust_Root_Certification_AuthorityFingerprint,
426 kGlobalSign_Root_CA___R3Fingerprint,
427 kGeoTrust_Universal_CA_2Fingerprint,
428 kCybertrust_Global_RootFingerprint,
429 kStarfield_Root_Certificate_Authority___G2Fingerprint,
430 kGeoTrust_Global_CAFingerprint,
431 kGlobalSign_Root_CA___R2Fingerprint,
432 kTC_TrustCenter_Class_3_CA_IIFingerprint,
433 kAffirmTrust_NetworkingFingerprint,
434 kAddTrust_External_RootFingerprint,
435 kVeriSign_Universal_Root_Certification_AuthorityFingerprint,
436 kGeoTrust_Universal_CAFingerprint,
437 kThawte_Server_CAFingerprint,
438 kEquifax_Secure_Global_eBusiness_CAFingerprint,
439 kTC_TrustCenter_Universal_CA_IIIFingerprint,
440 kGeoTrust_Primary_Certification_Authority___G3Fingerprint,
441 kDigiCert_Global_Root_CAFingerprint,
442 kTC_TrustCenter_Class_2_CA_IIFingerprint,
443 kVerisign_Class_3_Public_Primary_Certification_AuthorityFingerprint,
444 kVerisign_Class_3_Public_Primary_Certification_AuthorityFingerprint,
445 kTC_TrustCenter_Universal_CA_IFingerprint,
446 kGeoTrust_Primary_Certification_Authority___G2Fingerprint,
447 kComodo_AAA_Services_rootFingerprint,
448 kAffirmTrust_PremiumFingerprint,
449 kAddTrust_Qualified_Certificates_RootFingerprint,
450 };
451 static const StaticFingerprints kPinset_google_root_pems_sha256 = {
452 sizeof(kPinset_google_root_pems_sha256_Data) / sizeof(const char*),
453 kPinset_google_root_pems_sha256_Data
454 };
456 static const StaticPinset kPinset_google_root_pems = {
457 nullptr,
458 &kPinset_google_root_pems_sha256
459 };
461 static const char* kPinset_mozilla_sha256_Data[] = {
462 kGeoTrust_Global_CA_2Fingerprint,
463 kthawte_Primary_Root_CA___G3Fingerprint,
464 kthawte_Primary_Root_CAFingerprint,
465 kDigiCert_Assured_ID_Root_CAFingerprint,
466 kVerisign_Class_1_Public_Primary_Certification_Authority___G3Fingerprint,
467 kVeriSign_Class_3_Public_Primary_Certification_Authority___G5Fingerprint,
468 kGeoTrust_Primary_Certification_AuthorityFingerprint,
469 kVerisign_Class_3_Public_Primary_Certification_Authority___G3Fingerprint,
470 kVeriSign_Class_3_Public_Primary_Certification_Authority___G4Fingerprint,
471 kVerisign_Class_4_Public_Primary_Certification_Authority___G3Fingerprint,
472 kDigiCert_High_Assurance_EV_Root_CAFingerprint,
473 kBaltimore_CyberTrust_RootFingerprint,
474 kthawte_Primary_Root_CA___G2Fingerprint,
475 kVerisign_Class_2_Public_Primary_Certification_Authority___G3Fingerprint,
476 kGeoTrust_Universal_CA_2Fingerprint,
477 kGeoTrust_Global_CAFingerprint,
478 kVeriSign_Universal_Root_Certification_AuthorityFingerprint,
479 kGeoTrust_Universal_CAFingerprint,
480 kGeoTrust_Primary_Certification_Authority___G3Fingerprint,
481 kDigiCert_Global_Root_CAFingerprint,
482 kGeoTrust_Primary_Certification_Authority___G2Fingerprint,
483 };
484 static const StaticFingerprints kPinset_mozilla_sha256 = {
485 sizeof(kPinset_mozilla_sha256_Data) / sizeof(const char*),
486 kPinset_mozilla_sha256_Data
487 };
489 static const StaticPinset kPinset_mozilla = {
490 nullptr,
491 &kPinset_mozilla_sha256
492 };
494 static const char* kPinset_mozilla_services_sha256_Data[] = {
495 kDigiCert_Global_Root_CAFingerprint,
496 };
497 static const StaticFingerprints kPinset_mozilla_services_sha256 = {
498 sizeof(kPinset_mozilla_services_sha256_Data) / sizeof(const char*),
499 kPinset_mozilla_services_sha256_Data
500 };
502 static const StaticPinset kPinset_mozilla_services = {
503 nullptr,
504 &kPinset_mozilla_services_sha256
505 };
507 static const char* kPinset_mozilla_test_sha256_Data[] = {
508 kEnd_Entity_Test_CertFingerprint,
509 };
510 static const StaticFingerprints kPinset_mozilla_test_sha256 = {
511 sizeof(kPinset_mozilla_test_sha256_Data) / sizeof(const char*),
512 kPinset_mozilla_test_sha256_Data
513 };
515 static const StaticPinset kPinset_mozilla_test = {
516 nullptr,
517 &kPinset_mozilla_test_sha256
518 };
520 /* Chrome static pinsets */
521 static const char* kPinset_test_sha1_Data[] = {
522 kTestSPKIFingerprint,
523 };
524 static const StaticFingerprints kPinset_test_sha1 = {
525 sizeof(kPinset_test_sha1_Data) / sizeof(const char*),
526 kPinset_test_sha1_Data
527 };
529 static const StaticPinset kPinset_test = {
530 &kPinset_test_sha1,
531 nullptr
532 };
534 static const char* kPinset_google_sha1_Data[] = {
535 kGoogleG2Fingerprint,
536 kGoogleBackup2048Fingerprint,
537 };
538 static const StaticFingerprints kPinset_google_sha1 = {
539 sizeof(kPinset_google_sha1_Data) / sizeof(const char*),
540 kPinset_google_sha1_Data
541 };
543 static const StaticPinset kPinset_google = {
544 &kPinset_google_sha1,
545 nullptr
546 };
548 static const char* kPinset_tor_sha1_Data[] = {
549 kTor1Fingerprint,
550 kTor2Fingerprint,
551 kTor3Fingerprint,
552 };
553 static const StaticFingerprints kPinset_tor_sha1 = {
554 sizeof(kPinset_tor_sha1_Data) / sizeof(const char*),
555 kPinset_tor_sha1_Data
556 };
558 static const char* kPinset_tor_sha256_Data[] = {
559 kDigiCert_High_Assurance_EV_Root_CAFingerprint,
560 kGOOGLE_PIN_RapidSSLFingerprint,
561 };
562 static const StaticFingerprints kPinset_tor_sha256 = {
563 sizeof(kPinset_tor_sha256_Data) / sizeof(const char*),
564 kPinset_tor_sha256_Data
565 };
567 static const StaticPinset kPinset_tor = {
568 &kPinset_tor_sha1,
569 &kPinset_tor_sha256
570 };
572 static const char* kPinset_twitterCom_sha1_Data[] = {
573 kTwitter1Fingerprint,
574 };
575 static const StaticFingerprints kPinset_twitterCom_sha1 = {
576 sizeof(kPinset_twitterCom_sha1_Data) / sizeof(const char*),
577 kPinset_twitterCom_sha1_Data
578 };
580 static const char* kPinset_twitterCom_sha256_Data[] = {
581 kVerisign_Class_2_Public_Primary_Certification_Authority___G2Fingerprint,
582 kVerisign_Class_3_Public_Primary_Certification_Authority___G2Fingerprint,
583 kGeoTrust_Global_CA_2Fingerprint,
584 kDigiCert_Assured_ID_Root_CAFingerprint,
585 kVerisign_Class_1_Public_Primary_Certification_Authority___G3Fingerprint,
586 kVeriSign_Class_3_Public_Primary_Certification_Authority___G5Fingerprint,
587 kVerisign_Class_1_Public_Primary_Certification_AuthorityFingerprint,
588 kGeoTrust_Primary_Certification_AuthorityFingerprint,
589 kVerisign_Class_3_Public_Primary_Certification_Authority___G3Fingerprint,
590 kVeriSign_Class_3_Public_Primary_Certification_Authority___G4Fingerprint,
591 kVerisign_Class_4_Public_Primary_Certification_Authority___G3Fingerprint,
592 kDigiCert_High_Assurance_EV_Root_CAFingerprint,
593 kVerisign_Class_2_Public_Primary_Certification_Authority___G3Fingerprint,
594 kGeoTrust_Universal_CA_2Fingerprint,
595 kGeoTrust_Global_CAFingerprint,
596 kVeriSign_Universal_Root_Certification_AuthorityFingerprint,
597 kGeoTrust_Universal_CAFingerprint,
598 kGeoTrust_Primary_Certification_Authority___G3Fingerprint,
599 kDigiCert_Global_Root_CAFingerprint,
600 kVerisign_Class_3_Public_Primary_Certification_AuthorityFingerprint,
601 kGeoTrust_Primary_Certification_Authority___G2Fingerprint,
602 };
603 static const StaticFingerprints kPinset_twitterCom_sha256 = {
604 sizeof(kPinset_twitterCom_sha256_Data) / sizeof(const char*),
605 kPinset_twitterCom_sha256_Data
606 };
608 static const StaticPinset kPinset_twitterCom = {
609 &kPinset_twitterCom_sha1,
610 &kPinset_twitterCom_sha256
611 };
613 static const char* kPinset_twitterCDN_sha1_Data[] = {
614 kTwitter1Fingerprint,
615 };
616 static const StaticFingerprints kPinset_twitterCDN_sha1 = {
617 sizeof(kPinset_twitterCDN_sha1_Data) / sizeof(const char*),
618 kPinset_twitterCDN_sha1_Data
619 };
621 static const char* kPinset_twitterCDN_sha256_Data[] = {
622 kVerisign_Class_2_Public_Primary_Certification_Authority___G2Fingerprint,
623 kComodo_Trusted_Services_rootFingerprint,
624 kCOMODO_Certification_AuthorityFingerprint,
625 kVerisign_Class_3_Public_Primary_Certification_Authority___G2Fingerprint,
626 kAddTrust_Low_Value_Services_RootFingerprint,
627 kUTN_USERFirst_Object_Root_CAFingerprint,
628 kGTE_CyberTrust_Global_RootFingerprint,
629 kGeoTrust_Global_CA_2Fingerprint,
630 kEntrust_net_Premium_2048_Secure_Server_CAFingerprint,
631 kDigiCert_Assured_ID_Root_CAFingerprint,
632 kVerisign_Class_1_Public_Primary_Certification_Authority___G3Fingerprint,
633 kVeriSign_Class_3_Public_Primary_Certification_Authority___G5Fingerprint,
634 kGlobalSign_Root_CAFingerprint,
635 kUTN_USERFirst_Email_Root_CAFingerprint,
636 kVerisign_Class_1_Public_Primary_Certification_AuthorityFingerprint,
637 kAddTrust_Public_Services_RootFingerprint,
638 kUTN_DATACorp_SGC_Root_CAFingerprint,
639 kComodo_Secure_Services_rootFingerprint,
640 kGeoTrust_Primary_Certification_AuthorityFingerprint,
641 kVerisign_Class_3_Public_Primary_Certification_Authority___G3Fingerprint,
642 kUTN_USERFirst_Hardware_Root_CAFingerprint,
643 kVeriSign_Class_3_Public_Primary_Certification_Authority___G4Fingerprint,
644 kVerisign_Class_4_Public_Primary_Certification_Authority___G3Fingerprint,
645 kDigiCert_High_Assurance_EV_Root_CAFingerprint,
646 kBaltimore_CyberTrust_RootFingerprint,
647 kEntrust_Root_Certification_AuthorityFingerprint,
648 kVerisign_Class_2_Public_Primary_Certification_Authority___G3Fingerprint,
649 kGlobalSign_Root_CA___R3Fingerprint,
650 kGOOGLE_PIN_Entrust_G2Fingerprint,
651 kGeoTrust_Universal_CA_2Fingerprint,
652 kGeoTrust_Global_CAFingerprint,
653 kGlobalSign_Root_CA___R2Fingerprint,
654 kAddTrust_External_RootFingerprint,
655 kVeriSign_Universal_Root_Certification_AuthorityFingerprint,
656 kGeoTrust_Universal_CAFingerprint,
657 kGOOGLE_PIN_Entrust_SSLFingerprint,
658 kGeoTrust_Primary_Certification_Authority___G3Fingerprint,
659 kDigiCert_Global_Root_CAFingerprint,
660 kVerisign_Class_3_Public_Primary_Certification_AuthorityFingerprint,
661 kGeoTrust_Primary_Certification_Authority___G2Fingerprint,
662 kComodo_AAA_Services_rootFingerprint,
663 kAddTrust_Qualified_Certificates_RootFingerprint,
664 };
665 static const StaticFingerprints kPinset_twitterCDN_sha256 = {
666 sizeof(kPinset_twitterCDN_sha256_Data) / sizeof(const char*),
667 kPinset_twitterCDN_sha256_Data
668 };
670 static const StaticPinset kPinset_twitterCDN = {
671 &kPinset_twitterCDN_sha1,
672 &kPinset_twitterCDN_sha256
673 };
675 static const char* kPinset_tor2web_sha256_Data[] = {
676 kGOOGLE_PIN_Tor2webFingerprint,
677 kGOOGLE_PIN_AlphaSSL_G2Fingerprint,
678 };
679 static const StaticFingerprints kPinset_tor2web_sha256 = {
680 sizeof(kPinset_tor2web_sha256_Data) / sizeof(const char*),
681 kPinset_tor2web_sha256_Data
682 };
684 static const StaticPinset kPinset_tor2web = {
685 nullptr,
686 &kPinset_tor2web_sha256
687 };
689 static const char* kPinset_cryptoCat_sha256_Data[] = {
690 kDigiCert_High_Assurance_EV_Root_CAFingerprint,
691 kGOOGLE_PIN_CryptoCat1Fingerprint,
692 };
693 static const StaticFingerprints kPinset_cryptoCat_sha256 = {
694 sizeof(kPinset_cryptoCat_sha256_Data) / sizeof(const char*),
695 kPinset_cryptoCat_sha256_Data
696 };
698 static const StaticPinset kPinset_cryptoCat = {
699 nullptr,
700 &kPinset_cryptoCat_sha256
701 };
703 static const char* kPinset_lavabit_sha256_Data[] = {
704 kGOOGLE_PIN_LibertylavabitcomFingerprint,
705 };
706 static const StaticFingerprints kPinset_lavabit_sha256 = {
707 sizeof(kPinset_lavabit_sha256_Data) / sizeof(const char*),
708 kPinset_lavabit_sha256_Data
709 };
711 static const StaticPinset kPinset_lavabit = {
712 nullptr,
713 &kPinset_lavabit_sha256
714 };
716 static const char* kPinset_dropbox_sha256_Data[] = {
717 kGOOGLE_PIN_EntrustRootEC1Fingerprint,
718 kThawte_Premium_Server_CAFingerprint,
719 kthawte_Primary_Root_CA___G3Fingerprint,
720 kthawte_Primary_Root_CAFingerprint,
721 kEntrust_net_Premium_2048_Secure_Server_CAFingerprint,
722 kDigiCert_Assured_ID_Root_CAFingerprint,
723 kGo_Daddy_Root_Certificate_Authority___G2Fingerprint,
724 kGOOGLE_PIN_GoDaddySecureFingerprint,
725 kGeoTrust_Primary_Certification_AuthorityFingerprint,
726 kGo_Daddy_Class_2_CAFingerprint,
727 kDigiCert_High_Assurance_EV_Root_CAFingerprint,
728 kthawte_Primary_Root_CA___G2Fingerprint,
729 kEntrust_Root_Certification_AuthorityFingerprint,
730 kGOOGLE_PIN_Entrust_G2Fingerprint,
731 kGeoTrust_Global_CAFingerprint,
732 kGeoTrust_Primary_Certification_Authority___G3Fingerprint,
733 kDigiCert_Global_Root_CAFingerprint,
734 kGeoTrust_Primary_Certification_Authority___G2Fingerprint,
735 };
736 static const StaticFingerprints kPinset_dropbox_sha256 = {
737 sizeof(kPinset_dropbox_sha256_Data) / sizeof(const char*),
738 kPinset_dropbox_sha256_Data
739 };
741 static const StaticPinset kPinset_dropbox = {
742 nullptr,
743 &kPinset_dropbox_sha256
744 };
746 /* Domainlist */
747 struct TransportSecurityPreload {
748 const char* mHost;
749 const bool mIncludeSubdomains;
750 const bool mTestMode;
751 const bool mIsMoz;
752 const int32_t mId;
753 const StaticPinset *pinset;
754 };
756 /* Sort hostnames for binary search. */
757 static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
758 { "2mdn.net", true, false, false, -1, &kPinset_google_root_pems },
759 { "accounts.firefox.com", true, false, false, 4, &kPinset_mozilla_services },
760 { "accounts.google.com", true, false, false, -1, &kPinset_google_root_pems },
761 { "addons.mozilla.net", true, false, true, 2, &kPinset_mozilla },
762 { "addons.mozilla.org", true, false, true, 1, &kPinset_mozilla },
763 { "admin.google.com", true, false, false, -1, &kPinset_google_root_pems },
764 { "android.com", true, false, false, -1, &kPinset_google_root_pems },
765 { "api.accounts.firefox.com", true, false, false, 5, &kPinset_mozilla_services },
766 { "api.twitter.com", true, false, false, -1, &kPinset_twitterCDN },
767 { "apis.google.com", true, false, false, -1, &kPinset_google_root_pems },
768 { "appengine.google.com", true, false, false, -1, &kPinset_google_root_pems },
769 { "appspot.com", true, false, false, -1, &kPinset_google_root_pems },
770 { "aus4.mozilla.org", true, true, true, 3, &kPinset_mozilla },
771 { "blog.torproject.org", true, false, false, -1, &kPinset_tor },
772 { "business.twitter.com", true, false, false, -1, &kPinset_twitterCom },
773 { "cdn.mozilla.net", true, false, true, -1, &kPinset_mozilla },
774 { "cdn.mozilla.org", true, false, true, -1, &kPinset_mozilla },
775 { "chart.apis.google.com", true, false, false, -1, &kPinset_google_root_pems },
776 { "check.torproject.org", true, false, false, -1, &kPinset_tor },
777 { "checkout.google.com", true, false, false, -1, &kPinset_google_root_pems },
778 { "chrome-devtools-frontend.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
779 { "chrome.google.com", true, false, false, -1, &kPinset_google_root_pems },
780 { "chromiumcodereview.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
781 { "cloud.google.com", true, false, false, -1, &kPinset_google_root_pems },
782 { "code.google.com", true, false, false, -1, &kPinset_google_root_pems },
783 { "codereview.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
784 { "codereview.chromium.org", true, false, false, -1, &kPinset_google_root_pems },
785 { "crypto.cat", false, true, false, -1, &kPinset_cryptoCat },
786 { "dev.twitter.com", true, false, false, -1, &kPinset_twitterCom },
787 { "dist.torproject.org", true, false, false, -1, &kPinset_tor },
788 { "dl.google.com", true, false, false, -1, &kPinset_google_root_pems },
789 { "docs.google.com", true, false, false, -1, &kPinset_google_root_pems },
790 { "domains.google.com", true, false, false, -1, &kPinset_google_root_pems },
791 { "doubleclick.net", true, false, false, -1, &kPinset_google_root_pems },
792 { "drive.google.com", true, false, false, -1, &kPinset_google_root_pems },
793 { "dropbox.com", false, false, false, -1, &kPinset_dropbox },
794 { "encrypted.google.com", true, false, false, -1, &kPinset_google_root_pems },
795 { "exclude-subdomains.pinning.example.com", false, false, false, 0, &kPinset_mozilla_test },
796 { "facebook.com", true, true, false, -1, &kPinset_facebook },
797 { "g.co", true, false, false, -1, &kPinset_google_root_pems },
798 { "glass.google.com", true, false, false, -1, &kPinset_google_root_pems },
799 { "gmail.com", false, false, false, -1, &kPinset_google_root_pems },
800 { "goo.gl", true, false, false, -1, &kPinset_google_root_pems },
801 { "google-analytics.com", true, false, false, -1, &kPinset_google_root_pems },
802 { "google.ac", true, false, false, -1, &kPinset_google_root_pems },
803 { "google.ad", true, false, false, -1, &kPinset_google_root_pems },
804 { "google.ae", true, false, false, -1, &kPinset_google_root_pems },
805 { "google.af", true, false, false, -1, &kPinset_google_root_pems },
806 { "google.ag", true, false, false, -1, &kPinset_google_root_pems },
807 { "google.am", true, false, false, -1, &kPinset_google_root_pems },
808 { "google.as", true, false, false, -1, &kPinset_google_root_pems },
809 { "google.at", true, false, false, -1, &kPinset_google_root_pems },
810 { "google.az", true, false, false, -1, &kPinset_google_root_pems },
811 { "google.ba", true, false, false, -1, &kPinset_google_root_pems },
812 { "google.be", true, false, false, -1, &kPinset_google_root_pems },
813 { "google.bf", true, false, false, -1, &kPinset_google_root_pems },
814 { "google.bg", true, false, false, -1, &kPinset_google_root_pems },
815 { "google.bi", true, false, false, -1, &kPinset_google_root_pems },
816 { "google.bj", true, false, false, -1, &kPinset_google_root_pems },
817 { "google.bs", true, false, false, -1, &kPinset_google_root_pems },
818 { "google.by", true, false, false, -1, &kPinset_google_root_pems },
819 { "google.ca", true, false, false, -1, &kPinset_google_root_pems },
820 { "google.cat", true, false, false, -1, &kPinset_google_root_pems },
821 { "google.cc", true, false, false, -1, &kPinset_google_root_pems },
822 { "google.cd", true, false, false, -1, &kPinset_google_root_pems },
823 { "google.cf", true, false, false, -1, &kPinset_google_root_pems },
824 { "google.cg", true, false, false, -1, &kPinset_google_root_pems },
825 { "google.ch", true, false, false, -1, &kPinset_google_root_pems },
826 { "google.ci", true, false, false, -1, &kPinset_google_root_pems },
827 { "google.cl", true, false, false, -1, &kPinset_google_root_pems },
828 { "google.cm", true, false, false, -1, &kPinset_google_root_pems },
829 { "google.cn", true, false, false, -1, &kPinset_google_root_pems },
830 { "google.co.ao", true, false, false, -1, &kPinset_google_root_pems },
831 { "google.co.bw", true, false, false, -1, &kPinset_google_root_pems },
832 { "google.co.ck", true, false, false, -1, &kPinset_google_root_pems },
833 { "google.co.cr", true, false, false, -1, &kPinset_google_root_pems },
834 { "google.co.hu", true, false, false, -1, &kPinset_google_root_pems },
835 { "google.co.id", true, false, false, -1, &kPinset_google_root_pems },
836 { "google.co.il", true, false, false, -1, &kPinset_google_root_pems },
837 { "google.co.im", true, false, false, -1, &kPinset_google_root_pems },
838 { "google.co.in", true, false, false, -1, &kPinset_google_root_pems },
839 { "google.co.je", true, false, false, -1, &kPinset_google_root_pems },
840 { "google.co.jp", true, false, false, -1, &kPinset_google_root_pems },
841 { "google.co.ke", true, false, false, -1, &kPinset_google_root_pems },
842 { "google.co.kr", true, false, false, -1, &kPinset_google_root_pems },
843 { "google.co.ls", true, false, false, -1, &kPinset_google_root_pems },
844 { "google.co.ma", true, false, false, -1, &kPinset_google_root_pems },
845 { "google.co.mz", true, false, false, -1, &kPinset_google_root_pems },
846 { "google.co.nz", true, false, false, -1, &kPinset_google_root_pems },
847 { "google.co.th", true, false, false, -1, &kPinset_google_root_pems },
848 { "google.co.tz", true, false, false, -1, &kPinset_google_root_pems },
849 { "google.co.ug", true, false, false, -1, &kPinset_google_root_pems },
850 { "google.co.uk", true, false, false, -1, &kPinset_google_root_pems },
851 { "google.co.uz", true, false, false, -1, &kPinset_google_root_pems },
852 { "google.co.ve", true, false, false, -1, &kPinset_google_root_pems },
853 { "google.co.vi", true, false, false, -1, &kPinset_google_root_pems },
854 { "google.co.za", true, false, false, -1, &kPinset_google_root_pems },
855 { "google.co.zm", true, false, false, -1, &kPinset_google_root_pems },
856 { "google.co.zw", true, false, false, -1, &kPinset_google_root_pems },
857 { "google.com", true, false, false, -1, &kPinset_google_root_pems },
858 { "google.com.af", true, false, false, -1, &kPinset_google_root_pems },
859 { "google.com.ag", true, false, false, -1, &kPinset_google_root_pems },
860 { "google.com.ai", true, false, false, -1, &kPinset_google_root_pems },
861 { "google.com.ar", true, false, false, -1, &kPinset_google_root_pems },
862 { "google.com.au", true, false, false, -1, &kPinset_google_root_pems },
863 { "google.com.bd", true, false, false, -1, &kPinset_google_root_pems },
864 { "google.com.bh", true, false, false, -1, &kPinset_google_root_pems },
865 { "google.com.bn", true, false, false, -1, &kPinset_google_root_pems },
866 { "google.com.bo", true, false, false, -1, &kPinset_google_root_pems },
867 { "google.com.br", true, false, false, -1, &kPinset_google_root_pems },
868 { "google.com.by", true, false, false, -1, &kPinset_google_root_pems },
869 { "google.com.bz", true, false, false, -1, &kPinset_google_root_pems },
870 { "google.com.cn", true, false, false, -1, &kPinset_google_root_pems },
871 { "google.com.co", true, false, false, -1, &kPinset_google_root_pems },
872 { "google.com.cu", true, false, false, -1, &kPinset_google_root_pems },
873 { "google.com.cy", true, false, false, -1, &kPinset_google_root_pems },
874 { "google.com.do", true, false, false, -1, &kPinset_google_root_pems },
875 { "google.com.ec", true, false, false, -1, &kPinset_google_root_pems },
876 { "google.com.eg", true, false, false, -1, &kPinset_google_root_pems },
877 { "google.com.et", true, false, false, -1, &kPinset_google_root_pems },
878 { "google.com.fj", true, false, false, -1, &kPinset_google_root_pems },
879 { "google.com.ge", true, false, false, -1, &kPinset_google_root_pems },
880 { "google.com.gh", true, false, false, -1, &kPinset_google_root_pems },
881 { "google.com.gi", true, false, false, -1, &kPinset_google_root_pems },
882 { "google.com.gr", true, false, false, -1, &kPinset_google_root_pems },
883 { "google.com.gt", true, false, false, -1, &kPinset_google_root_pems },
884 { "google.com.hk", true, false, false, -1, &kPinset_google_root_pems },
885 { "google.com.iq", true, false, false, -1, &kPinset_google_root_pems },
886 { "google.com.jm", true, false, false, -1, &kPinset_google_root_pems },
887 { "google.com.jo", true, false, false, -1, &kPinset_google_root_pems },
888 { "google.com.kh", true, false, false, -1, &kPinset_google_root_pems },
889 { "google.com.kw", true, false, false, -1, &kPinset_google_root_pems },
890 { "google.com.lb", true, false, false, -1, &kPinset_google_root_pems },
891 { "google.com.ly", true, false, false, -1, &kPinset_google_root_pems },
892 { "google.com.mt", true, false, false, -1, &kPinset_google_root_pems },
893 { "google.com.mx", true, false, false, -1, &kPinset_google_root_pems },
894 { "google.com.my", true, false, false, -1, &kPinset_google_root_pems },
895 { "google.com.na", true, false, false, -1, &kPinset_google_root_pems },
896 { "google.com.nf", true, false, false, -1, &kPinset_google_root_pems },
897 { "google.com.ng", true, false, false, -1, &kPinset_google_root_pems },
898 { "google.com.ni", true, false, false, -1, &kPinset_google_root_pems },
899 { "google.com.np", true, false, false, -1, &kPinset_google_root_pems },
900 { "google.com.nr", true, false, false, -1, &kPinset_google_root_pems },
901 { "google.com.om", true, false, false, -1, &kPinset_google_root_pems },
902 { "google.com.pa", true, false, false, -1, &kPinset_google_root_pems },
903 { "google.com.pe", true, false, false, -1, &kPinset_google_root_pems },
904 { "google.com.ph", true, false, false, -1, &kPinset_google_root_pems },
905 { "google.com.pk", true, false, false, -1, &kPinset_google_root_pems },
906 { "google.com.pl", true, false, false, -1, &kPinset_google_root_pems },
907 { "google.com.pr", true, false, false, -1, &kPinset_google_root_pems },
908 { "google.com.py", true, false, false, -1, &kPinset_google_root_pems },
909 { "google.com.qa", true, false, false, -1, &kPinset_google_root_pems },
910 { "google.com.ru", true, false, false, -1, &kPinset_google_root_pems },
911 { "google.com.sa", true, false, false, -1, &kPinset_google_root_pems },
912 { "google.com.sb", true, false, false, -1, &kPinset_google_root_pems },
913 { "google.com.sg", true, false, false, -1, &kPinset_google_root_pems },
914 { "google.com.sl", true, false, false, -1, &kPinset_google_root_pems },
915 { "google.com.sv", true, false, false, -1, &kPinset_google_root_pems },
916 { "google.com.tj", true, false, false, -1, &kPinset_google_root_pems },
917 { "google.com.tn", true, false, false, -1, &kPinset_google_root_pems },
918 { "google.com.tr", true, false, false, -1, &kPinset_google_root_pems },
919 { "google.com.tw", true, false, false, -1, &kPinset_google_root_pems },
920 { "google.com.ua", true, false, false, -1, &kPinset_google_root_pems },
921 { "google.com.uy", true, false, false, -1, &kPinset_google_root_pems },
922 { "google.com.vc", true, false, false, -1, &kPinset_google_root_pems },
923 { "google.com.ve", true, false, false, -1, &kPinset_google_root_pems },
924 { "google.com.vn", true, false, false, -1, &kPinset_google_root_pems },
925 { "google.cv", true, false, false, -1, &kPinset_google_root_pems },
926 { "google.cz", true, false, false, -1, &kPinset_google_root_pems },
927 { "google.de", true, false, false, -1, &kPinset_google_root_pems },
928 { "google.dj", true, false, false, -1, &kPinset_google_root_pems },
929 { "google.dk", true, false, false, -1, &kPinset_google_root_pems },
930 { "google.dm", true, false, false, -1, &kPinset_google_root_pems },
931 { "google.dz", true, false, false, -1, &kPinset_google_root_pems },
932 { "google.ee", true, false, false, -1, &kPinset_google_root_pems },
933 { "google.es", true, false, false, -1, &kPinset_google_root_pems },
934 { "google.fi", true, false, false, -1, &kPinset_google_root_pems },
935 { "google.fm", true, false, false, -1, &kPinset_google_root_pems },
936 { "google.fr", true, false, false, -1, &kPinset_google_root_pems },
937 { "google.ga", true, false, false, -1, &kPinset_google_root_pems },
938 { "google.ge", true, false, false, -1, &kPinset_google_root_pems },
939 { "google.gg", true, false, false, -1, &kPinset_google_root_pems },
940 { "google.gl", true, false, false, -1, &kPinset_google_root_pems },
941 { "google.gm", true, false, false, -1, &kPinset_google_root_pems },
942 { "google.gp", true, false, false, -1, &kPinset_google_root_pems },
943 { "google.gr", true, false, false, -1, &kPinset_google_root_pems },
944 { "google.gy", true, false, false, -1, &kPinset_google_root_pems },
945 { "google.hk", true, false, false, -1, &kPinset_google_root_pems },
946 { "google.hn", true, false, false, -1, &kPinset_google_root_pems },
947 { "google.hr", true, false, false, -1, &kPinset_google_root_pems },
948 { "google.ht", true, false, false, -1, &kPinset_google_root_pems },
949 { "google.hu", true, false, false, -1, &kPinset_google_root_pems },
950 { "google.ie", true, false, false, -1, &kPinset_google_root_pems },
951 { "google.im", true, false, false, -1, &kPinset_google_root_pems },
952 { "google.info", true, false, false, -1, &kPinset_google_root_pems },
953 { "google.iq", true, false, false, -1, &kPinset_google_root_pems },
954 { "google.is", true, false, false, -1, &kPinset_google_root_pems },
955 { "google.it", true, false, false, -1, &kPinset_google_root_pems },
956 { "google.it.ao", true, false, false, -1, &kPinset_google_root_pems },
957 { "google.je", true, false, false, -1, &kPinset_google_root_pems },
958 { "google.jo", true, false, false, -1, &kPinset_google_root_pems },
959 { "google.jobs", true, false, false, -1, &kPinset_google_root_pems },
960 { "google.jp", true, false, false, -1, &kPinset_google_root_pems },
961 { "google.kg", true, false, false, -1, &kPinset_google_root_pems },
962 { "google.ki", true, false, false, -1, &kPinset_google_root_pems },
963 { "google.kz", true, false, false, -1, &kPinset_google_root_pems },
964 { "google.la", true, false, false, -1, &kPinset_google_root_pems },
965 { "google.li", true, false, false, -1, &kPinset_google_root_pems },
966 { "google.lk", true, false, false, -1, &kPinset_google_root_pems },
967 { "google.lt", true, false, false, -1, &kPinset_google_root_pems },
968 { "google.lu", true, false, false, -1, &kPinset_google_root_pems },
969 { "google.lv", true, false, false, -1, &kPinset_google_root_pems },
970 { "google.md", true, false, false, -1, &kPinset_google_root_pems },
971 { "google.me", true, false, false, -1, &kPinset_google_root_pems },
972 { "google.mg", true, false, false, -1, &kPinset_google_root_pems },
973 { "google.mk", true, false, false, -1, &kPinset_google_root_pems },
974 { "google.ml", true, false, false, -1, &kPinset_google_root_pems },
975 { "google.mn", true, false, false, -1, &kPinset_google_root_pems },
976 { "google.ms", true, false, false, -1, &kPinset_google_root_pems },
977 { "google.mu", true, false, false, -1, &kPinset_google_root_pems },
978 { "google.mv", true, false, false, -1, &kPinset_google_root_pems },
979 { "google.mw", true, false, false, -1, &kPinset_google_root_pems },
980 { "google.ne", true, false, false, -1, &kPinset_google_root_pems },
981 { "google.ne.jp", true, false, false, -1, &kPinset_google_root_pems },
982 { "google.net", true, false, false, -1, &kPinset_google_root_pems },
983 { "google.nl", true, false, false, -1, &kPinset_google_root_pems },
984 { "google.no", true, false, false, -1, &kPinset_google_root_pems },
985 { "google.nr", true, false, false, -1, &kPinset_google_root_pems },
986 { "google.nu", true, false, false, -1, &kPinset_google_root_pems },
987 { "google.off.ai", true, false, false, -1, &kPinset_google_root_pems },
988 { "google.pk", true, false, false, -1, &kPinset_google_root_pems },
989 { "google.pl", true, false, false, -1, &kPinset_google_root_pems },
990 { "google.pn", true, false, false, -1, &kPinset_google_root_pems },
991 { "google.ps", true, false, false, -1, &kPinset_google_root_pems },
992 { "google.pt", true, false, false, -1, &kPinset_google_root_pems },
993 { "google.ro", true, false, false, -1, &kPinset_google_root_pems },
994 { "google.rs", true, false, false, -1, &kPinset_google_root_pems },
995 { "google.ru", true, false, false, -1, &kPinset_google_root_pems },
996 { "google.rw", true, false, false, -1, &kPinset_google_root_pems },
997 { "google.sc", true, false, false, -1, &kPinset_google_root_pems },
998 { "google.se", true, false, false, -1, &kPinset_google_root_pems },
999 { "google.sh", true, false, false, -1, &kPinset_google_root_pems },
1000 { "google.si", true, false, false, -1, &kPinset_google_root_pems },
1001 { "google.sk", true, false, false, -1, &kPinset_google_root_pems },
1002 { "google.sm", true, false, false, -1, &kPinset_google_root_pems },
1003 { "google.sn", true, false, false, -1, &kPinset_google_root_pems },
1004 { "google.so", true, false, false, -1, &kPinset_google_root_pems },
1005 { "google.st", true, false, false, -1, &kPinset_google_root_pems },
1006 { "google.td", true, false, false, -1, &kPinset_google_root_pems },
1007 { "google.tg", true, false, false, -1, &kPinset_google_root_pems },
1008 { "google.tk", true, false, false, -1, &kPinset_google_root_pems },
1009 { "google.tl", true, false, false, -1, &kPinset_google_root_pems },
1010 { "google.tm", true, false, false, -1, &kPinset_google_root_pems },
1011 { "google.tn", true, false, false, -1, &kPinset_google_root_pems },
1012 { "google.to", true, false, false, -1, &kPinset_google_root_pems },
1013 { "google.tt", true, false, false, -1, &kPinset_google_root_pems },
1014 { "google.us", true, false, false, -1, &kPinset_google_root_pems },
1015 { "google.uz", true, false, false, -1, &kPinset_google_root_pems },
1016 { "google.vg", true, false, false, -1, &kPinset_google_root_pems },
1017 { "google.vu", true, false, false, -1, &kPinset_google_root_pems },
1018 { "google.ws", true, false, false, -1, &kPinset_google_root_pems },
1019 { "googleadservices.com", true, false, false, -1, &kPinset_google_root_pems },
1020 { "googleapis.com", true, false, false, -1, &kPinset_google_root_pems },
1021 { "googlecode.com", true, false, false, -1, &kPinset_google_root_pems },
1022 { "googlecommerce.com", true, false, false, -1, &kPinset_google_root_pems },
1023 { "googlegroups.com", true, false, false, -1, &kPinset_google_root_pems },
1024 { "googlemail.com", false, false, false, -1, &kPinset_google_root_pems },
1025 { "googleplex.com", true, false, false, -1, &kPinset_google_root_pems },
1026 { "googlesyndication.com", true, false, false, -1, &kPinset_google_root_pems },
1027 { "googletagmanager.com", true, false, false, -1, &kPinset_google_root_pems },
1028 { "googletagservices.com", true, false, false, -1, &kPinset_google_root_pems },
1029 { "googleusercontent.com", true, false, false, -1, &kPinset_google_root_pems },
1030 { "goto.google.com", true, false, false, -1, &kPinset_google_root_pems },
1031 { "groups.google.com", true, false, false, -1, &kPinset_google_root_pems },
1032 { "gstatic.com", true, false, false, -1, &kPinset_google_root_pems },
1033 { "history.google.com", true, false, false, -1, &kPinset_google_root_pems },
1034 { "hostedtalkgadget.google.com", true, false, false, -1, &kPinset_google_root_pems },
1035 { "include-subdomains.pinning.example.com", true, false, false, -1, &kPinset_mozilla_test },
1036 { "liberty.lavabit.com", true, true, false, -1, &kPinset_lavabit },
1037 { "login.corp.google.com", true, false, false, -1, &kPinset_google_root_pems },
1038 { "mail.google.com", true, false, false, -1, &kPinset_google_root_pems },
1039 { "market.android.com", true, false, false, -1, &kPinset_google_root_pems },
1040 { "media.mozilla.com", true, false, true, -1, &kPinset_mozilla },
1041 { "mobile.twitter.com", true, false, false, -1, &kPinset_twitterCom },
1042 { "oauth.twitter.com", true, false, false, -1, &kPinset_twitterCom },
1043 { "pinningtest.appspot.com", true, false, false, -1, &kPinset_test },
1044 { "platform.twitter.com", true, false, false, -1, &kPinset_twitterCDN },
1045 { "play.google.com", false, false, false, -1, &kPinset_google_root_pems },
1046 { "plus.google.com", true, false, false, -1, &kPinset_google_root_pems },
1047 { "plus.sandbox.google.com", true, false, false, -1, &kPinset_google_root_pems },
1048 { "profiles.google.com", true, false, false, -1, &kPinset_google_root_pems },
1049 { "script.google.com", true, false, false, -1, &kPinset_google_root_pems },
1050 { "security.google.com", true, false, false, -1, &kPinset_google_root_pems },
1051 { "services.mozilla.com", true, true, false, -1, &kPinset_mozilla_services },
1052 { "sites.google.com", true, false, false, -1, &kPinset_google_root_pems },
1053 { "spreadsheets.google.com", true, false, false, -1, &kPinset_google_root_pems },
1054 { "ssl.google-analytics.com", true, false, false, -1, &kPinset_google_root_pems },
1055 { "talk.google.com", true, false, false, -1, &kPinset_google_root_pems },
1056 { "talkgadget.google.com", true, false, false, -1, &kPinset_google_root_pems },
1057 { "test-mode.pinning.example.com", true, true, false, -1, &kPinset_mozilla_test },
1058 { "tor2web.org", true, true, false, -1, &kPinset_tor2web },
1059 { "torproject.org", false, false, false, -1, &kPinset_tor },
1060 { "translate.googleapis.com", true, false, false, -1, &kPinset_google_root_pems },
1061 { "twimg.com", true, false, false, -1, &kPinset_twitterCDN },
1062 { "twitter.com", true, false, false, -1, &kPinset_twitterCDN },
1063 { "urchin.com", true, false, false, -1, &kPinset_google_root_pems },
1064 { "w-spotlight.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
1065 { "wallet.google.com", true, false, false, -1, &kPinset_google_root_pems },
1066 { "webfilings-eu-mirror.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
1067 { "webfilings-eu.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
1068 { "webfilings-mirror-hrd.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
1069 { "webfilings.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
1070 { "wf-bigsky-master.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
1071 { "wf-demo-eu.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
1072 { "wf-demo-hrd.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
1073 { "wf-dogfood-hrd.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
1074 { "wf-pentest.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
1075 { "wf-staging-hr.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
1076 { "wf-training-hrd.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
1077 { "wf-training-master.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
1078 { "wf-trial-hrd.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
1079 { "www.dropbox.com", true, false, false, -1, &kPinset_dropbox },
1080 { "www.gmail.com", false, false, false, -1, &kPinset_google_root_pems },
1081 { "www.googlemail.com", false, false, false, -1, &kPinset_google_root_pems },
1082 { "www.torproject.org", true, false, false, -1, &kPinset_tor },
1083 { "www.twitter.com", true, false, false, -1, &kPinset_twitterCom },
1084 { "xbrlsuccess.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
1085 { "youtu.be", true, false, false, -1, &kPinset_google_root_pems },
1086 { "youtube-nocookie.com", true, false, false, -1, &kPinset_google_root_pems },
1087 { "youtube.com", true, false, false, -1, &kPinset_google_root_pems },
1088 { "ytimg.com", true, false, false, -1, &kPinset_google_root_pems },
1089 };
1091 // Pinning Preload List Length = 331;
1093 static const int32_t kUnknownId = -1;
1095 static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1419674828470000);