Index: net/cert/ct_objects_extractor_unittest.cc |
diff --git a/net/cert/ct_objects_extractor_unittest.cc b/net/cert/ct_objects_extractor_unittest.cc |
deleted file mode 100644 |
index 90f01f72bd86656dfb033486b7e90f5ed8586524..0000000000000000000000000000000000000000 |
--- a/net/cert/ct_objects_extractor_unittest.cc |
+++ /dev/null |
@@ -1,181 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "net/cert/ct_objects_extractor.h" |
- |
-#include "base/files/file_path.h" |
-#include "net/base/test_data_directory.h" |
-#include "net/cert/ct_log_verifier.h" |
-#include "net/cert/ct_serialization.h" |
-#include "net/cert/signed_certificate_timestamp.h" |
-#include "net/cert/x509_certificate.h" |
-#include "net/test/cert_test_util.h" |
-#include "net/test/ct_test_util.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace net { |
- |
-namespace ct { |
- |
-class CTObjectsExtractorTest : public ::testing::Test { |
- public: |
- void SetUp() override { |
- precert_chain_ = |
- CreateCertificateListFromFile(GetTestCertsDirectory(), |
- "ct-test-embedded-cert.pem", |
- X509Certificate::FORMAT_AUTO); |
- ASSERT_EQ(2u, precert_chain_.size()); |
- |
- std::string der_test_cert(ct::GetDerEncodedX509Cert()); |
- test_cert_ = X509Certificate::CreateFromBytes(der_test_cert.data(), |
- der_test_cert.length()); |
- |
- log_ = CTLogVerifier::Create(ct::GetTestPublicKey(), "testlog").Pass(); |
- ASSERT_TRUE(log_); |
- } |
- |
- void ExtractEmbeddedSCT(scoped_refptr<X509Certificate> cert, |
- scoped_refptr<SignedCertificateTimestamp>* sct) { |
- std::string sct_list; |
- EXPECT_TRUE(ExtractEmbeddedSCTList(cert->os_cert_handle(), &sct_list)); |
- |
- std::vector<base::StringPiece> parsed_scts; |
- base::StringPiece sct_list_sp(sct_list); |
- // Make sure the SCT list can be decoded properly |
- EXPECT_TRUE(DecodeSCTList(&sct_list_sp, &parsed_scts)); |
- |
- EXPECT_TRUE(DecodeSignedCertificateTimestamp(&parsed_scts[0], sct)); |
- } |
- |
- protected: |
- CertificateList precert_chain_; |
- scoped_refptr<X509Certificate> test_cert_; |
- scoped_ptr<CTLogVerifier> log_; |
-}; |
- |
-// Test that an SCT can be extracted and the extracted SCT contains the |
-// expected data. |
-TEST_F(CTObjectsExtractorTest, ExtractEmbeddedSCT) { |
- scoped_refptr<ct::SignedCertificateTimestamp> sct( |
- new ct::SignedCertificateTimestamp()); |
- ExtractEmbeddedSCT(precert_chain_[0], &sct); |
- |
- EXPECT_EQ(sct->version, SignedCertificateTimestamp::SCT_VERSION_1); |
- EXPECT_EQ(ct::GetTestPublicKeyId(), sct->log_id); |
- |
- base::Time expected_timestamp = |
- base::Time::UnixEpoch() + |
- base::TimeDelta::FromMilliseconds(1365181456275); |
- EXPECT_EQ(expected_timestamp, sct->timestamp); |
-} |
- |
-TEST_F(CTObjectsExtractorTest, ExtractPrecert) { |
- LogEntry entry; |
- ASSERT_TRUE(GetPrecertLogEntry(precert_chain_[0]->os_cert_handle(), |
- precert_chain_[1]->os_cert_handle(), |
- &entry)); |
- |
- ASSERT_EQ(ct::LogEntry::LOG_ENTRY_TYPE_PRECERT, entry.type); |
- // Should have empty leaf cert for this log entry type. |
- ASSERT_TRUE(entry.leaf_certificate.empty()); |
- // Compare hash values of issuer spki. |
- SHA256HashValue expected_issuer_key_hash; |
- memcpy(expected_issuer_key_hash.data, GetDefaultIssuerKeyHash().data(), 32); |
- ASSERT_TRUE(expected_issuer_key_hash.Equals(entry.issuer_key_hash)); |
-} |
- |
-TEST_F(CTObjectsExtractorTest, ExtractOrdinaryX509Cert) { |
- LogEntry entry; |
- ASSERT_TRUE(GetX509LogEntry(test_cert_->os_cert_handle(), &entry)); |
- |
- ASSERT_EQ(ct::LogEntry::LOG_ENTRY_TYPE_X509, entry.type); |
- // Should have empty tbs_certificate for this log entry type. |
- ASSERT_TRUE(entry.tbs_certificate.empty()); |
- // Length of leaf_certificate should be 718, see the CT Serialization tests. |
- ASSERT_EQ(718U, entry.leaf_certificate.size()); |
-} |
- |
-// Test that the embedded SCT verifies |
-TEST_F(CTObjectsExtractorTest, ExtractedSCTVerifies) { |
- scoped_refptr<ct::SignedCertificateTimestamp> sct( |
- new ct::SignedCertificateTimestamp()); |
- ExtractEmbeddedSCT(precert_chain_[0], &sct); |
- |
- LogEntry entry; |
- ASSERT_TRUE(GetPrecertLogEntry(precert_chain_[0]->os_cert_handle(), |
- precert_chain_[1]->os_cert_handle(), |
- &entry)); |
- |
- EXPECT_TRUE(log_->Verify(entry, *sct.get())); |
-} |
- |
-// Test that an externally-provided SCT verifies over the LogEntry |
-// of a regular X.509 Certificate |
-TEST_F(CTObjectsExtractorTest, ComplementarySCTVerifies) { |
- scoped_refptr<ct::SignedCertificateTimestamp> sct( |
- new ct::SignedCertificateTimestamp()); |
- GetX509CertSCT(&sct); |
- |
- LogEntry entry; |
- ASSERT_TRUE(GetX509LogEntry(test_cert_->os_cert_handle(), &entry)); |
- |
- EXPECT_TRUE(log_->Verify(entry, *sct.get())); |
-} |
- |
-// Test that the extractor can parse OCSP responses. |
-TEST_F(CTObjectsExtractorTest, ExtractSCTListFromOCSPResponse) { |
- std::string der_subject_cert(ct::GetDerEncodedFakeOCSPResponseCert()); |
- scoped_refptr<X509Certificate> subject_cert = |
- X509Certificate::CreateFromBytes(der_subject_cert.data(), |
- der_subject_cert.length()); |
- std::string der_issuer_cert(ct::GetDerEncodedFakeOCSPResponseIssuerCert()); |
- scoped_refptr<X509Certificate> issuer_cert = |
- X509Certificate::CreateFromBytes(der_issuer_cert.data(), |
- der_issuer_cert.length()); |
- |
- std::string fake_sct_list = ct::GetFakeOCSPExtensionValue(); |
- ASSERT_FALSE(fake_sct_list.empty()); |
- std::string ocsp_response = ct::GetDerEncodedFakeOCSPResponse(); |
- |
- std::string extracted_sct_list; |
- EXPECT_TRUE(ct::ExtractSCTListFromOCSPResponse( |
- issuer_cert->os_cert_handle(), subject_cert->serial_number(), |
- ocsp_response, &extracted_sct_list)); |
- EXPECT_EQ(extracted_sct_list, fake_sct_list); |
-} |
- |
-// Test that the extractor honours serial number. |
-TEST_F(CTObjectsExtractorTest, ExtractSCTListFromOCSPResponseMatchesSerial) { |
- std::string der_issuer_cert(ct::GetDerEncodedFakeOCSPResponseIssuerCert()); |
- scoped_refptr<X509Certificate> issuer_cert = |
- X509Certificate::CreateFromBytes(der_issuer_cert.data(), |
- der_issuer_cert.length()); |
- |
- std::string ocsp_response = ct::GetDerEncodedFakeOCSPResponse(); |
- |
- std::string extracted_sct_list; |
- EXPECT_FALSE(ct::ExtractSCTListFromOCSPResponse( |
- issuer_cert->os_cert_handle(), test_cert_->serial_number(), |
- ocsp_response, &extracted_sct_list)); |
-} |
- |
-// Test that the extractor honours issuer ID. |
-TEST_F(CTObjectsExtractorTest, ExtractSCTListFromOCSPResponseMatchesIssuer) { |
- std::string der_subject_cert(ct::GetDerEncodedFakeOCSPResponseCert()); |
- scoped_refptr<X509Certificate> subject_cert = |
- X509Certificate::CreateFromBytes(der_subject_cert.data(), |
- der_subject_cert.length()); |
- |
- std::string ocsp_response = ct::GetDerEncodedFakeOCSPResponse(); |
- |
- std::string extracted_sct_list; |
- // Use test_cert_ for issuer - it is not the correct issuer of |subject_cert|. |
- EXPECT_FALSE(ct::ExtractSCTListFromOCSPResponse( |
- test_cert_->os_cert_handle(), subject_cert->serial_number(), |
- ocsp_response, &extracted_sct_list)); |
-} |
- |
-} // namespace ct |
- |
-} // namespace net |