| Index: trunk/src/net/cert/cert_verify_proc_nss.cc
|
| ===================================================================
|
| --- trunk/src/net/cert/cert_verify_proc_nss.cc (revision 209533)
|
| +++ trunk/src/net/cert/cert_verify_proc_nss.cc (working copy)
|
| @@ -158,6 +158,10 @@
|
| void GetCertChainInfo(CERTCertList* cert_list,
|
| CERTCertificate* root_cert,
|
| CertVerifyResult* verify_result) {
|
| + // NOTE: Using a NSS library before 3.12.3.1 will crash below. To see the
|
| + // NSS version currently in use:
|
| + // 1. use ldd on the chrome executable for NSS's location (ie. libnss3.so*)
|
| + // 2. use ident libnss3.so* for the library's version
|
| DCHECK(cert_list);
|
|
|
| CERTCertificate* verified_cert = NULL;
|
| @@ -342,6 +346,31 @@
|
| bool use_crl = check_revocation;
|
| bool use_ocsp = check_revocation;
|
|
|
| + // These CAs have multiple keys, which trigger two bugs in NSS's CRL code.
|
| + // 1. NSS may use one key to verify a CRL signed with another key,
|
| + // incorrectly concluding that the CRL's signature is invalid.
|
| + // Hopefully this bug will be fixed in NSS 3.12.9.
|
| + // 2. NSS considers all certificates issued by the CA as revoked when it
|
| + // receives a CRL with an invalid signature. This overly strict policy
|
| + // has been relaxed in NSS 3.12.7. See
|
| + // https://bugzilla.mozilla.org/show_bug.cgi?id=562542.
|
| + // So we have to turn off CRL checking for these CAs. See
|
| + // http://crbug.com/55695.
|
| + static const char* const kMultipleKeyCA[] = {
|
| + "CN=Microsoft Secure Server Authority,"
|
| + "DC=redmond,DC=corp,DC=microsoft,DC=com",
|
| + "CN=Microsoft Secure Server Authority",
|
| + };
|
| +
|
| + if (!NSS_VersionCheck("3.12.7")) {
|
| + for (size_t i = 0; i < arraysize(kMultipleKeyCA); ++i) {
|
| + if (strcmp(cert_handle->issuerName, kMultipleKeyCA[i]) == 0) {
|
| + use_crl = false;
|
| + break;
|
| + }
|
| + }
|
| + }
|
| +
|
| PRUint64 revocation_method_flags =
|
| CERT_REV_M_DO_NOT_TEST_USING_THIS_METHOD |
|
| CERT_REV_M_ALLOW_NETWORK_FETCHING |
|
|
|