gecko-dev/security/certverifier
Dana Keeler 4401954b60 Bug 1551177 - avoid searching unproductive certificate paths during verification r=jcj,KevinJacobs
In bug 1056341 we introduced a search budget to mozilla::pkix to attempt to work
around the problem of having an extremely large search space given a set of
certificates all with the same subject and issuer distinguished names but
different public keys. In the end, though, there is probably no good value to
choose for the budget that is small enough to run quickly on the wide range of
hardware our users have and yet is large enough that we're confident won't break
someone's complicated pki setup (looking at you, the US federal government).

To address this, use the observation that as long as an intermediate can't *add*
information necessary to build a certificate chain (e.g. stapled SCTs), we
should never need a self-signed intermediate (as in, its own key verifies the
signature on it and its subject and issuer distinguished names are identical) to
build a trusted chain (since the exact same chain without that intermediate
should be valid). Given this, we simply skip all self-signed non-trust anchor
CA certificates during path building.

Differential Revision: https://phabricator.services.mozilla.com/D31368

--HG--
extra : moz-landing-system : lando
2019-05-18 00:15:54 +00:00
..
tests/gtest Bug 1542146 - Apply the change with the option StatementMacros from clang-format-8 r=andi 2019-04-05 21:42:17 +00:00
BRNameMatchingPolicy.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
BRNameMatchingPolicy.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
CertVerifier.cpp bug 1515608 - allow end-entity certificates to be trust anchors for compatibility r=jcj 2019-03-18 20:01:02 +00:00
CertVerifier.h bug 1473573 - import intermediate certificates as well as roots r=jcj 2019-02-12 18:23:25 +00:00
ExtendedValidation.cpp Bug 1515465 - Enable EV Treatment for eMudhra Technologies Limited root certificates r=keeler 2019-04-25 17:46:16 +00:00
ExtendedValidation.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
moz.build Bug 1512504 - Remove support for MSVC. r=froydnj 2019-02-14 21:45:27 +00:00
NSSCertDBTrustDomain.cpp Bug 1551177 - avoid searching unproductive certificate paths during verification r=jcj,KevinJacobs 2019-05-18 00:15:54 +00:00
NSSCertDBTrustDomain.h Bug 1551177 - avoid searching unproductive certificate paths during verification r=jcj,KevinJacobs 2019-05-18 00:15:54 +00:00
OCSPCache.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
OCSPCache.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
OCSPVerificationTrustDomain.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
OCSPVerificationTrustDomain.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
TrustOverride-AppleGoogleDigiCertData.inc
TrustOverride-GlobalSignData.inc
TrustOverride-StartComAndWoSignData.inc
TrustOverride-SymantecData.inc
TrustOverride-TestImminentDistrustData.inc
TrustOverrideUtils.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00