| Index: net/quic/crypto/quic_compressed_certs_cache.cc
|
| diff --git a/net/quic/crypto/quic_compressed_certs_cache.cc b/net/quic/crypto/quic_compressed_certs_cache.cc
|
| deleted file mode 100644
|
| index 92d66d2cad448a59ef5a3cf5a5c481ecc89c8f3e..0000000000000000000000000000000000000000
|
| --- a/net/quic/crypto/quic_compressed_certs_cache.cc
|
| +++ /dev/null
|
| @@ -1,124 +0,0 @@
|
| -// Copyright 2016 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/quic/crypto/quic_compressed_certs_cache.h"
|
| -
|
| -using std::string;
|
| -
|
| -namespace net {
|
| -
|
| -namespace {
|
| -
|
| -// Inline helper function for extending a 64-bit |seed| in-place with a 64-bit
|
| -// |value|. Based on Boost's hash_combine function.
|
| -inline void hash_combine(uint64_t* seed, const uint64_t& val) {
|
| - (*seed) ^= val + 0x9e3779b9 + ((*seed) << 6) + ((*seed) >> 2);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -QuicCompressedCertsCache::UncompressedCerts::UncompressedCerts() {}
|
| -
|
| -QuicCompressedCertsCache::UncompressedCerts::UncompressedCerts(
|
| - const scoped_refptr<ProofSource::Chain>& chain,
|
| - const string* client_common_set_hashes,
|
| - const string* client_cached_cert_hashes)
|
| - : chain(chain),
|
| - client_common_set_hashes(client_common_set_hashes),
|
| - client_cached_cert_hashes(client_cached_cert_hashes) {}
|
| -
|
| -QuicCompressedCertsCache::UncompressedCerts::~UncompressedCerts() {}
|
| -
|
| -QuicCompressedCertsCache::CachedCerts::CachedCerts() {}
|
| -
|
| -QuicCompressedCertsCache::CachedCerts::CachedCerts(
|
| - const UncompressedCerts& uncompressed_certs,
|
| - const string& compressed_cert)
|
| - : chain_(uncompressed_certs.chain),
|
| - client_common_set_hashes_(*uncompressed_certs.client_common_set_hashes),
|
| - client_cached_cert_hashes_(*uncompressed_certs.client_cached_cert_hashes),
|
| - compressed_cert_(compressed_cert) {}
|
| -
|
| -QuicCompressedCertsCache::CachedCerts::CachedCerts(const CachedCerts& other) =
|
| - default;
|
| -
|
| -QuicCompressedCertsCache::CachedCerts::~CachedCerts() {}
|
| -
|
| -bool QuicCompressedCertsCache::CachedCerts::MatchesUncompressedCerts(
|
| - const UncompressedCerts& uncompressed_certs) const {
|
| - return (client_common_set_hashes_ ==
|
| - *uncompressed_certs.client_common_set_hashes &&
|
| - client_cached_cert_hashes_ ==
|
| - *uncompressed_certs.client_cached_cert_hashes &&
|
| - chain_ == uncompressed_certs.chain);
|
| -}
|
| -
|
| -const string* QuicCompressedCertsCache::CachedCerts::compressed_cert() const {
|
| - return &compressed_cert_;
|
| -}
|
| -
|
| -QuicCompressedCertsCache::QuicCompressedCertsCache(int64_t max_num_certs)
|
| - : certs_cache_(max_num_certs) {}
|
| -
|
| -QuicCompressedCertsCache::~QuicCompressedCertsCache() {
|
| - // Underlying cache must be cleared before destruction.
|
| - certs_cache_.Clear();
|
| -}
|
| -
|
| -const string* QuicCompressedCertsCache::GetCompressedCert(
|
| - const scoped_refptr<ProofSource::Chain>& chain,
|
| - const string& client_common_set_hashes,
|
| - const string& client_cached_cert_hashes) {
|
| - UncompressedCerts uncompressed_certs(chain, &client_common_set_hashes,
|
| - &client_cached_cert_hashes);
|
| -
|
| - uint64_t key = ComputeUncompressedCertsHash(uncompressed_certs);
|
| -
|
| - auto cached_it = certs_cache_.Get(key);
|
| -
|
| - if (cached_it != certs_cache_.end()) {
|
| - const CachedCerts& cached_value = cached_it->second;
|
| - if (cached_value.MatchesUncompressedCerts(uncompressed_certs)) {
|
| - return cached_value.compressed_cert();
|
| - }
|
| - }
|
| - return nullptr;
|
| -}
|
| -
|
| -void QuicCompressedCertsCache::Insert(
|
| - const scoped_refptr<ProofSource::Chain>& chain,
|
| - const string& client_common_set_hashes,
|
| - const string& client_cached_cert_hashes,
|
| - const string& compressed_cert) {
|
| - UncompressedCerts uncompressed_certs(chain, &client_common_set_hashes,
|
| - &client_cached_cert_hashes);
|
| -
|
| - uint64_t key = ComputeUncompressedCertsHash(uncompressed_certs);
|
| -
|
| - // Insert one unit to the cache.
|
| - certs_cache_.Put(key, CachedCerts(uncompressed_certs, compressed_cert));
|
| -}
|
| -
|
| -size_t QuicCompressedCertsCache::MaxSize() {
|
| - return certs_cache_.max_size();
|
| -}
|
| -
|
| -size_t QuicCompressedCertsCache::Size() {
|
| - return certs_cache_.size();
|
| -}
|
| -
|
| -uint64_t QuicCompressedCertsCache::ComputeUncompressedCertsHash(
|
| - const UncompressedCerts& uncompressed_certs) {
|
| - uint64_t hash =
|
| - std::hash<string>()(*uncompressed_certs.client_common_set_hashes);
|
| - uint64_t h =
|
| - std::hash<string>()(*uncompressed_certs.client_cached_cert_hashes);
|
| - hash_combine(&hash, h);
|
| -
|
| - hash_combine(&hash,
|
| - reinterpret_cast<uint64_t>(uncompressed_certs.chain.get()));
|
| - return hash;
|
| -}
|
| -
|
| -} // namespace net
|
|
|