| Index: net/cert/multi_log_ct_verifier_unittest.cc
|
| diff --git a/net/cert/multi_log_ct_verifier_unittest.cc b/net/cert/multi_log_ct_verifier_unittest.cc
|
| index e233a06557e41f0eda4496436bc641900a6a62e4..b27abf0b8d26837c59f63af4271a88070e247fdc 100644
|
| --- a/net/cert/multi_log_ct_verifier_unittest.cc
|
| +++ b/net/cert/multi_log_ct_verifier_unittest.cc
|
| @@ -8,7 +8,9 @@
|
|
|
| #include "base/file_util.h"
|
| #include "base/files/file_path.h"
|
| +#include "net/base/capturing_net_log.h"
|
| #include "net/base/net_errors.h"
|
| +#include "net/base/net_log.h"
|
| #include "net/base/test_data_directory.h"
|
| #include "net/cert/ct_log_verifier.h"
|
| #include "net/cert/ct_serialization.h"
|
| @@ -53,12 +55,36 @@ class MultiLogCTVerifierTest : public ::testing::Test {
|
| (result.verified_scts[0]->origin == origin);
|
| }
|
|
|
| + bool CheckForEmbeddedSCTInNetLog(CapturingNetLog& net_log) {
|
| + CapturingNetLog::CapturedEntryList entries;
|
| + net_log.GetEntries(&entries);
|
| + if (entries.size() != 2)
|
| + return false;
|
| +
|
| + const CapturingNetLog::CapturedEntry& received(entries[0]);
|
| + std::string embedded_scts;
|
| + if (!received.GetStringValue("embedded_scts", &embedded_scts))
|
| + return false;
|
| + if (embedded_scts.empty())
|
| + return false;
|
| +
|
| + //XXX(eranm): entries[1] is the NetLog message with the checked SCTs.
|
| + //When CapturedEntry has methods to get a dictionary, rather than just
|
| + //a string, add more checks here.
|
| +
|
| + return true;
|
| + }
|
| +
|
| bool CheckPrecertificateVerification(scoped_refptr<X509Certificate> chain) {
|
| ct::CTVerifyResult result;
|
| - return (verifier_->Verify(chain, "", "", &result) == OK) &&
|
| + CapturingNetLog net_log;
|
| + BoundNetLog bound_net_log =
|
| + BoundNetLog::Make(&net_log, NetLog::SOURCE_CONNECT_JOB);
|
| + return (verifier_->Verify(chain, "", "", &result, bound_net_log) == OK) &&
|
| CheckForSingleVerifiedSCTInResult(result) &&
|
| CheckForSCTOrigin(
|
| - result, ct::SignedCertificateTimestamp::SCT_EMBEDDED);
|
| + result, ct::SignedCertificateTimestamp::SCT_EMBEDDED) &&
|
| + CheckForEmbeddedSCTInNetLog(net_log);
|
| }
|
|
|
| protected:
|
| @@ -111,7 +137,8 @@ TEST_F(MultiLogCTVerifierTest,
|
| ASSERT_TRUE(ct::EncodeSCTListForTesting(sct, &sct_list));
|
|
|
| ct::CTVerifyResult result;
|
| - EXPECT_EQ(OK, verifier_->Verify(chain_, "", sct_list, &result));
|
| + EXPECT_EQ(OK,
|
| + verifier_->Verify(chain_, "", sct_list, &result, BoundNetLog()));
|
| ASSERT_TRUE(CheckForSingleVerifiedSCTInResult(result));
|
| ASSERT_TRUE(CheckForSCTOrigin(
|
| result, ct::SignedCertificateTimestamp::SCT_FROM_TLS_EXTENSION));
|
| @@ -129,7 +156,8 @@ TEST_F(MultiLogCTVerifierTest,
|
| ASSERT_TRUE(ct::EncodeSCTListForTesting(sct, &sct_list));
|
|
|
| ct::CTVerifyResult result;
|
| - EXPECT_NE(OK, verifier_->Verify(chain_, sct_list, "", &result));
|
| + EXPECT_NE(OK,
|
| + verifier_->Verify(chain_, sct_list, "", &result, BoundNetLog()));
|
| EXPECT_EQ(1U, result.unknown_logs_scts.size());
|
| }
|
|
|
|
|