Index: net/quic/crypto/proof_verifier_chromium.cc |
diff --git a/net/quic/crypto/proof_verifier_chromium.cc b/net/quic/crypto/proof_verifier_chromium.cc |
index eb5f20ae70d74a1d1ac194b7e95eba770a4d0136..4e87c296f4da6e44deddccb1a88db224ca05665c 100644 |
--- a/net/quic/crypto/proof_verifier_chromium.cc |
+++ b/net/quic/crypto/proof_verifier_chromium.cc |
@@ -34,6 +34,14 @@ using std::vector; |
namespace net { |
+ProofVerifyDetailsChromium::ProofVerifyDetailsChromium() |
+ : pkp_bypassed(false) {} |
+ |
+ProofVerifyDetailsChromium::~ProofVerifyDetailsChromium() {} |
+ |
+ProofVerifyDetailsChromium::ProofVerifyDetailsChromium( |
+ const ProofVerifyDetailsChromium&) = default; |
+ |
ProofVerifyDetails* ProofVerifyDetailsChromium::Clone() const { |
ProofVerifyDetailsChromium* other = new ProofVerifyDetailsChromium; |
other->cert_verify_result = cert_verify_result; |
@@ -335,7 +343,10 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) { |
cert_verify_result.verified_cert.get(), |
TransportSecurityState::ENABLE_PIN_REPORTS, |
&verify_details_->pinning_failure_log)) { |
- result = ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN; |
+ if (cert_verify_result.is_issued_by_known_root) |
+ result = ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN; |
+ else |
+ verify_details_->pkp_bypassed = true; |
} |
if (result != OK) { |