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/safe_browsing_util.h" | 5 #include "chrome/browser/safe_browsing/safe_browsing_util.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
458 std::vector<std::string> hosts, paths; | 458 std::vector<std::string> hosts, paths; |
459 GenerateHostsToCheck(url, &hosts); | 459 GenerateHostsToCheck(url, &hosts); |
460 GeneratePathsToCheck(url, &paths); | 460 GeneratePathsToCheck(url, &paths); |
461 for (size_t h = 0; h < hosts.size(); ++h) { | 461 for (size_t h = 0; h < hosts.size(); ++h) { |
462 for (size_t p = 0; p < paths.size(); ++p) { | 462 for (size_t p = 0; p < paths.size(); ++p) { |
463 urls->push_back(hosts[h] + paths[p]); | 463 urls->push_back(hosts[h] + paths[p]); |
464 } | 464 } |
465 } | 465 } |
466 } | 466 } |
467 | 467 |
468 int GetHashIndex(const SBFullHash& hash, | |
469 const std::vector<SBFullHashResult>& full_hashes) { | |
470 for (size_t i = 0; i < full_hashes.size(); ++i) { | |
471 if (SBFullHashEqual(hash, full_hashes[i].hash)) | |
472 return static_cast<int>(i); | |
473 } | |
474 return -1; | |
475 } | |
476 | |
477 int GetUrlHashIndex(const GURL& url, | |
478 const std::vector<SBFullHashResult>& full_hashes) { | |
479 if (full_hashes.empty()) | |
480 return -1; | |
481 | |
482 std::vector<std::string> patterns; | |
483 GeneratePatternsToCheck(url, &patterns); | |
484 | |
485 for (size_t i = 0; i < patterns.size(); ++i) { | |
486 SBFullHash key = SBFullHashForString(patterns[i]); | |
487 int index = GetHashIndex(key, full_hashes); | |
488 if (index != -1) | |
489 return index; | |
490 } | |
491 return -1; | |
492 } | |
493 | |
494 GURL GeneratePhishingReportUrl(const std::string& report_page, | 468 GURL GeneratePhishingReportUrl(const std::string& report_page, |
495 const std::string& url_to_report, | 469 const std::string& url_to_report, |
496 bool is_client_side_detection) { | 470 bool is_client_side_detection) { |
497 const std::string current_esc = net::EscapeQueryParamValue(url_to_report, | 471 const std::string current_esc = net::EscapeQueryParamValue(url_to_report, |
498 true); | 472 true); |
499 | 473 |
500 #if defined(OS_WIN) | 474 #if defined(OS_WIN) |
501 BrowserDistribution* dist = BrowserDistribution::GetDistribution(); | 475 BrowserDistribution* dist = BrowserDistribution::GetDistribution(); |
502 std::string client_name(dist->GetSafeBrowsingName()); | 476 std::string client_name(dist->GetSafeBrowsingName()); |
503 #else | 477 #else |
(...skipping 15 matching lines...) Expand all Loading... |
519 memcpy(hash_out.full_hash, hash_in.data(), crypto::kSHA256Length); | 493 memcpy(hash_out.full_hash, hash_in.data(), crypto::kSHA256Length); |
520 return hash_out; | 494 return hash_out; |
521 } | 495 } |
522 | 496 |
523 std::string SBFullHashToString(const SBFullHash& hash) { | 497 std::string SBFullHashToString(const SBFullHash& hash) { |
524 DCHECK_EQ(crypto::kSHA256Length, sizeof(hash.full_hash)); | 498 DCHECK_EQ(crypto::kSHA256Length, sizeof(hash.full_hash)); |
525 return std::string(hash.full_hash, sizeof(hash.full_hash)); | 499 return std::string(hash.full_hash, sizeof(hash.full_hash)); |
526 } | 500 } |
527 | 501 |
528 } // namespace safe_browsing_util | 502 } // namespace safe_browsing_util |
OLD | NEW |