| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/safe_browsing/download_protection_service.h" | 5 #include "chrome/browser/safe_browsing/download_protection_service.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <map> | 10 #include <map> |
| 11 #include <memory> | 11 #include <memory> |
| 12 #include <string> | 12 #include <string> |
| 13 | 13 |
| 14 #include "base/base_paths.h" | 14 #include "base/base_paths.h" |
| 15 #include "base/bind.h" | 15 #include "base/bind.h" |
| 16 #include "base/callback.h" | 16 #include "base/callback.h" |
| 17 #include "base/command_line.h" | 17 #include "base/command_line.h" |
| 18 #include "base/files/file_path.h" | 18 #include "base/files/file_path.h" |
| 19 #include "base/files/file_util.h" | 19 #include "base/files/file_util.h" |
| 20 #include "base/files/scoped_temp_dir.h" | 20 #include "base/files/scoped_temp_dir.h" |
| 21 #include "base/macros.h" | 21 #include "base/macros.h" |
| 22 #include "base/memory/ref_counted.h" | 22 #include "base/memory/ref_counted.h" |
| 23 #include "base/message_loop/message_loop.h" | 23 #include "base/message_loop/message_loop.h" |
| 24 #include "base/path_service.h" | 24 #include "base/path_service.h" |
| 25 #include "base/run_loop.h" | 25 #include "base/run_loop.h" |
| 26 #include "base/sha1.h" |
| 26 #include "base/strings/string_number_conversions.h" | 27 #include "base/strings/string_number_conversions.h" |
| 27 #include "base/threading/sequenced_worker_pool.h" | 28 #include "base/threading/sequenced_worker_pool.h" |
| 28 #include "chrome/browser/history/history_service_factory.h" | 29 #include "chrome/browser/history/history_service_factory.h" |
| 29 #include "chrome/browser/safe_browsing/download_feedback_service.h" | 30 #include "chrome/browser/safe_browsing/download_feedback_service.h" |
| 30 #include "chrome/browser/safe_browsing/incident_reporting/incident_reporting_ser
vice.h" | 31 #include "chrome/browser/safe_browsing/incident_reporting/incident_reporting_ser
vice.h" |
| 31 #include "chrome/browser/safe_browsing/local_database_manager.h" | 32 #include "chrome/browser/safe_browsing/local_database_manager.h" |
| 32 #include "chrome/browser/safe_browsing/safe_browsing_service.h" | 33 #include "chrome/browser/safe_browsing/safe_browsing_service.h" |
| 33 #include "chrome/common/chrome_switches.h" | 34 #include "chrome/common/chrome_switches.h" |
| 34 #include "chrome/common/pref_names.h" | 35 #include "chrome/common/pref_names.h" |
| 35 #include "chrome/common/safe_browsing/binary_feature_extractor.h" | 36 #include "chrome/common/safe_browsing/binary_feature_extractor.h" |
| (...skipping 1688 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1724 EXPECT_FALSE(HasClientDownloadRequest()); | 1725 EXPECT_FALSE(HasClientDownloadRequest()); |
| 1725 } | 1726 } |
| 1726 | 1727 |
| 1727 TEST_F(DownloadProtectionServiceTest, GetCertificateWhitelistStrings) { | 1728 TEST_F(DownloadProtectionServiceTest, GetCertificateWhitelistStrings) { |
| 1728 // We'll pass this cert in as the "issuer", even though it isn't really | 1729 // We'll pass this cert in as the "issuer", even though it isn't really |
| 1729 // used to sign the certs below. GetCertificateWhitelistStirngs doesn't care | 1730 // used to sign the certs below. GetCertificateWhitelistStirngs doesn't care |
| 1730 // about this. | 1731 // about this. |
| 1731 scoped_refptr<net::X509Certificate> issuer_cert( | 1732 scoped_refptr<net::X509Certificate> issuer_cert( |
| 1732 ReadTestCertificate("issuer.pem")); | 1733 ReadTestCertificate("issuer.pem")); |
| 1733 ASSERT_TRUE(issuer_cert.get()); | 1734 ASSERT_TRUE(issuer_cert.get()); |
| 1734 std::string cert_base = "cert/" + base::HexEncode( | 1735 std::string issuer_der; |
| 1735 issuer_cert->fingerprint().data, | 1736 net::X509Certificate::GetDEREncoded(issuer_cert->os_cert_handle(), |
| 1736 sizeof(issuer_cert->fingerprint().data)); | 1737 &issuer_der); |
| 1738 std::string hashed = base::SHA1HashString(issuer_der); |
| 1739 std::string cert_base = |
| 1740 "cert/" + base::HexEncode(hashed.data(), hashed.size()); |
| 1737 | 1741 |
| 1738 scoped_refptr<net::X509Certificate> cert(ReadTestCertificate("test_cn.pem")); | 1742 scoped_refptr<net::X509Certificate> cert(ReadTestCertificate("test_cn.pem")); |
| 1739 ASSERT_TRUE(cert.get()); | 1743 ASSERT_TRUE(cert.get()); |
| 1740 std::vector<std::string> whitelist_strings; | 1744 std::vector<std::string> whitelist_strings; |
| 1741 GetCertificateWhitelistStrings( | 1745 GetCertificateWhitelistStrings( |
| 1742 *cert.get(), *issuer_cert.get(), &whitelist_strings); | 1746 *cert.get(), *issuer_cert.get(), &whitelist_strings); |
| 1743 // This also tests escaping of characters in the certificate attributes. | 1747 // This also tests escaping of characters in the certificate attributes. |
| 1744 EXPECT_THAT(whitelist_strings, ElementsAre( | 1748 EXPECT_THAT(whitelist_strings, ElementsAre( |
| 1745 cert_base + "/CN=subject%2F%251")); | 1749 cert_base + "/CN=subject%2F%251")); |
| 1746 | 1750 |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1918 &item, base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, | 1922 &item, base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| 1919 base::Unretained(this))); | 1923 base::Unretained(this))); |
| 1920 MessageLoop::current()->Run(); | 1924 MessageLoop::current()->Run(); |
| 1921 | 1925 |
| 1922 EXPECT_FALSE(HasClientDownloadRequest()); | 1926 EXPECT_FALSE(HasClientDownloadRequest()); |
| 1923 // Overriden by flag: | 1927 // Overriden by flag: |
| 1924 EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS)); | 1928 EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS)); |
| 1925 } | 1929 } |
| 1926 | 1930 |
| 1927 } // namespace safe_browsing | 1931 } // namespace safe_browsing |
| OLD | NEW |