Index: net/quic/crypto/proof_verifier_chromium_test.cc |
diff --git a/net/quic/crypto/proof_verifier_chromium_test.cc b/net/quic/crypto/proof_verifier_chromium_test.cc |
index ee418e846ba14a11dc0f9374bd0fe5c9cf5e9641..76b56b1bd9d8d7a2c436f1eca865d6c4569307fa 100644 |
--- a/net/quic/crypto/proof_verifier_chromium_test.cc |
+++ b/net/quic/crypto/proof_verifier_chromium_test.cc |
@@ -183,15 +183,41 @@ |
certs->push_back(der_bytes); |
} |
+ std::string GetSCTListForTesting() { |
+ const std::string sct = ct::GetTestSignedCertificateTimestamp(); |
+ std::string sct_list; |
+ ct::EncodeSCTListForTesting(sct, &sct_list); |
+ return sct_list; |
+ } |
+ |
+ std::string GetCorruptSCTListForTesting() { |
+ std::string sct = ct::GetTestSignedCertificateTimestamp(); |
+ sct[15] = 't'; // Corrupt a byte inside SCT. |
+ std::string sct_list; |
+ ct::EncodeSCTListForTesting(sct, &sct_list); |
+ return sct_list; |
+ } |
+ |
+ bool CheckForSingleVerifiedSCTInResult(const ct::CTVerifyResult& result) { |
+ return (result.verified_scts.size() == 1U) && result.invalid_scts.empty() && |
+ result.unknown_logs_scts.empty() && |
+ result.verified_scts[0]->log_description == kLogDescription; |
+ } |
+ |
+ bool CheckForSCTOrigin(const ct::CTVerifyResult& result, |
+ ct::SignedCertificateTimestamp::Origin origin) { |
+ return (result.verified_scts.size() > 0) && |
+ (result.verified_scts[0]->origin == origin); |
+ } |
+ |
void CheckSCT(bool sct_expected_ok) { |
ProofVerifyDetailsChromium* proof_details = |
reinterpret_cast<ProofVerifyDetailsChromium*>(details_.get()); |
const ct::CTVerifyResult& ct_verify_result = |
proof_details->ct_verify_result; |
if (sct_expected_ok) { |
- ASSERT_TRUE(ct::CheckForSingleVerifiedSCTInResult(ct_verify_result, |
- kLogDescription)); |
- ASSERT_TRUE(ct::CheckForSCTOrigin( |
+ ASSERT_TRUE(CheckForSingleVerifiedSCTInResult(ct_verify_result)); |
+ ASSERT_TRUE(CheckForSCTOrigin( |
ct_verify_result, |
ct::SignedCertificateTimestamp::SCT_FROM_TLS_EXTENSION)); |
} else { |
@@ -235,7 +261,7 @@ |
scoped_ptr<DummyProofVerifierCallback> callback( |
new DummyProofVerifierCallback); |
QuicAsyncStatus status = proof_verifier.VerifyProof( |
- kTestHostname, kTestConfig, certs_, ct::GetSCTListForTesting(), "", |
+ kTestHostname, kTestConfig, certs_, GetSCTListForTesting(), "", |
verify_context_.get(), &error_details_, &details_, callback.get()); |
ASSERT_EQ(QUIC_FAILURE, status); |
CheckSCT(/*sct_expected_ok=*/true); |
@@ -253,7 +279,7 @@ |
scoped_ptr<DummyProofVerifierCallback> callback( |
new DummyProofVerifierCallback); |
QuicAsyncStatus status = proof_verifier.VerifyProof( |
- kTestHostname, kTestConfig, certs_, ct::GetSCTListWithInvalidSCT(), "", |
+ kTestHostname, kTestConfig, certs_, GetCorruptSCTListForTesting(), "", |
verify_context_.get(), &error_details_, &details_, callback.get()); |
ASSERT_EQ(QUIC_FAILURE, status); |
CheckSCT(/*sct_expected_ok=*/false); |