blob: 268391e70090e0455ebd59da74fb720788083b51 [file] [log] [blame]
// Copyright 2015 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 "chromecast/crypto/signature_cache.h"
#include "base/logging.h"
namespace chromecast {
namespace {
const int kSignatureCacheSize = 10;
} // namespace
SignatureCache::SignatureCache()
: contents_(kSignatureCacheSize) {}
SignatureCache::~SignatureCache() {}
std::string SignatureCache::Get(const std::string& wrapped_private_key,
const std::string& hash) {
std::string result;
base::AutoLock lock(lock_);
if (wrapped_private_key != key_)
return result;
const auto iter = contents_.Get(hash);
if (iter != contents_.end())
result = iter->second;
return result;
}
void SignatureCache::Put(const std::string& wrapped_private_key,
const std::string& hash,
const std::string& signature) {
base::AutoLock lock(lock_);
if (wrapped_private_key != key_) {
key_ = wrapped_private_key;
contents_.Clear();
}
contents_.Put(hash, signature);
}
} // namespace chromecast