| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/quic/chromium/crypto/proof_verifier_chromium.h" | 5 #include "net/quic/chromium/crypto/proof_verifier_chromium.h" |
| 6 | 6 |
| 7 #include "base/memory/ref_counted.h" | 7 #include "base/memory/ref_counted.h" |
| 8 #include "net/base/net_errors.h" | 8 #include "net/base/net_errors.h" |
| 9 #include "net/cert/cert_status_flags.h" | 9 #include "net/cert/cert_status_flags.h" |
| 10 #include "net/cert/cert_verifier.h" | 10 #include "net/cert/cert_verifier.h" |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 public: | 35 public: |
| 36 FailsTestCertVerifier() {} | 36 FailsTestCertVerifier() {} |
| 37 ~FailsTestCertVerifier() override {} | 37 ~FailsTestCertVerifier() override {} |
| 38 | 38 |
| 39 // CertVerifier implementation | 39 // CertVerifier implementation |
| 40 int Verify(const RequestParams& params, | 40 int Verify(const RequestParams& params, |
| 41 CRLSet* crl_set, | 41 CRLSet* crl_set, |
| 42 CertVerifyResult* verify_result, | 42 CertVerifyResult* verify_result, |
| 43 const CompletionCallback& callback, | 43 const CompletionCallback& callback, |
| 44 std::unique_ptr<Request>* out_req, | 44 std::unique_ptr<Request>* out_req, |
| 45 const BoundNetLog& net_log) override { | 45 const NetLogWithSource& net_log) override { |
| 46 ADD_FAILURE() << "CertVerifier::Verify() should not be called"; | 46 ADD_FAILURE() << "CertVerifier::Verify() should not be called"; |
| 47 return ERR_FAILED; | 47 return ERR_FAILED; |
| 48 } | 48 } |
| 49 }; | 49 }; |
| 50 | 50 |
| 51 // CTPolicyEnforcer that will fail the test if it is ever called. | 51 // CTPolicyEnforcer that will fail the test if it is ever called. |
| 52 class FailsTestCTPolicyEnforcer : public CTPolicyEnforcer { | 52 class FailsTestCTPolicyEnforcer : public CTPolicyEnforcer { |
| 53 public: | 53 public: |
| 54 FailsTestCTPolicyEnforcer() {} | 54 FailsTestCTPolicyEnforcer() {} |
| 55 ~FailsTestCTPolicyEnforcer() override {} | 55 ~FailsTestCTPolicyEnforcer() override {} |
| 56 | 56 |
| 57 ct::EVPolicyCompliance DoesConformToCTEVPolicy( | 57 ct::EVPolicyCompliance DoesConformToCTEVPolicy( |
| 58 X509Certificate* cert, | 58 X509Certificate* cert, |
| 59 const ct::EVCertsWhitelist* ev_whitelist, | 59 const ct::EVCertsWhitelist* ev_whitelist, |
| 60 const ct::SCTList& verified_scts, | 60 const ct::SCTList& verified_scts, |
| 61 const BoundNetLog& net_log) override { | 61 const NetLogWithSource& net_log) override { |
| 62 ADD_FAILURE() << "CTPolicyEnforcer::DoesConformToCTEVPolicy() should " | 62 ADD_FAILURE() << "CTPolicyEnforcer::DoesConformToCTEVPolicy() should " |
| 63 << "not be called"; | 63 << "not be called"; |
| 64 return ct::EVPolicyCompliance::EV_POLICY_DOES_NOT_APPLY; | 64 return ct::EVPolicyCompliance::EV_POLICY_DOES_NOT_APPLY; |
| 65 } | 65 } |
| 66 }; | 66 }; |
| 67 | 67 |
| 68 // A mock CTPolicyEnforcer that returns a custom verification result. | 68 // A mock CTPolicyEnforcer that returns a custom verification result. |
| 69 class MockCTPolicyEnforcer : public CTPolicyEnforcer { | 69 class MockCTPolicyEnforcer : public CTPolicyEnforcer { |
| 70 public: | 70 public: |
| 71 MOCK_METHOD3(DoesConformToCertPolicy, | 71 MOCK_METHOD3(DoesConformToCertPolicy, |
| 72 ct::CertPolicyCompliance(X509Certificate* cert, | 72 ct::CertPolicyCompliance(X509Certificate* cert, |
| 73 const ct::SCTList&, | 73 const ct::SCTList&, |
| 74 const BoundNetLog&)); | 74 const NetLogWithSource&)); |
| 75 MOCK_METHOD4(DoesConformToCTEVPolicy, | 75 MOCK_METHOD4(DoesConformToCTEVPolicy, |
| 76 ct::EVPolicyCompliance(X509Certificate* cert, | 76 ct::EVPolicyCompliance(X509Certificate* cert, |
| 77 const ct::EVCertsWhitelist*, | 77 const ct::EVCertsWhitelist*, |
| 78 const ct::SCTList&, | 78 const ct::SCTList&, |
| 79 const BoundNetLog&)); | 79 const NetLogWithSource&)); |
| 80 }; | 80 }; |
| 81 | 81 |
| 82 class MockRequireCTDelegate : public TransportSecurityState::RequireCTDelegate { | 82 class MockRequireCTDelegate : public TransportSecurityState::RequireCTDelegate { |
| 83 public: | 83 public: |
| 84 MOCK_METHOD1(IsCTRequiredForHost, | 84 MOCK_METHOD1(IsCTRequiredForHost, |
| 85 CTRequirementLevel(const std::string& host)); | 85 CTRequirementLevel(const std::string& host)); |
| 86 }; | 86 }; |
| 87 | 87 |
| 88 class DummyProofVerifierCallback : public ProofVerifierCallback { | 88 class DummyProofVerifierCallback : public ProofVerifierCallback { |
| 89 public: | 89 public: |
| (...skipping 11 matching lines...) Expand all Loading... |
| 101 const uint16_t kTestPort = 8443; | 101 const uint16_t kTestPort = 8443; |
| 102 const char kTestConfig[] = "server config bytes"; | 102 const char kTestConfig[] = "server config bytes"; |
| 103 const char kLogDescription[] = "somelog"; | 103 const char kLogDescription[] = "somelog"; |
| 104 | 104 |
| 105 } // namespace | 105 } // namespace |
| 106 | 106 |
| 107 class ProofVerifierChromiumTest : public ::testing::Test { | 107 class ProofVerifierChromiumTest : public ::testing::Test { |
| 108 public: | 108 public: |
| 109 ProofVerifierChromiumTest() | 109 ProofVerifierChromiumTest() |
| 110 : verify_context_(new ProofVerifyContextChromium(0 /*cert_verify_flags*/, | 110 : verify_context_(new ProofVerifyContextChromium(0 /*cert_verify_flags*/, |
| 111 BoundNetLog())) {} | 111 NetLogWithSource())) {} |
| 112 | 112 |
| 113 void SetUp() override { | 113 void SetUp() override { |
| 114 EXPECT_CALL(ct_policy_enforcer_, DoesConformToCertPolicy(_, _, _)) | 114 EXPECT_CALL(ct_policy_enforcer_, DoesConformToCertPolicy(_, _, _)) |
| 115 .WillRepeatedly( | 115 .WillRepeatedly( |
| 116 Return(ct::CertPolicyCompliance::CERT_POLICY_NOT_ENOUGH_SCTS)); | 116 Return(ct::CertPolicyCompliance::CERT_POLICY_NOT_ENOUGH_SCTS)); |
| 117 EXPECT_CALL(ct_policy_enforcer_, DoesConformToCTEVPolicy(_, _, _, _)) | 117 EXPECT_CALL(ct_policy_enforcer_, DoesConformToCTEVPolicy(_, _, _, _)) |
| 118 .WillRepeatedly( | 118 .WillRepeatedly( |
| 119 Return(ct::EVPolicyCompliance::EV_POLICY_DOES_NOT_APPLY)); | 119 Return(ct::EVPolicyCompliance::EV_POLICY_DOES_NOT_APPLY)); |
| 120 | 120 |
| 121 scoped_refptr<const CTLogVerifier> log( | 121 scoped_refptr<const CTLogVerifier> log( |
| (...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 613 ASSERT_EQ(QUIC_SUCCESS, status); | 613 ASSERT_EQ(QUIC_SUCCESS, status); |
| 614 | 614 |
| 615 ASSERT_TRUE(details_.get()); | 615 ASSERT_TRUE(details_.get()); |
| 616 ProofVerifyDetailsChromium* verify_details = | 616 ProofVerifyDetailsChromium* verify_details = |
| 617 static_cast<ProofVerifyDetailsChromium*>(details_.get()); | 617 static_cast<ProofVerifyDetailsChromium*>(details_.get()); |
| 618 EXPECT_EQ(0u, verify_details->cert_verify_result.cert_status); | 618 EXPECT_EQ(0u, verify_details->cert_verify_result.cert_status); |
| 619 } | 619 } |
| 620 | 620 |
| 621 } // namespace test | 621 } // namespace test |
| 622 } // namespace net | 622 } // namespace net |
| OLD | NEW |