summaryrefslogtreecommitdiffstats
path: root/net/base/keygen_handler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/base/keygen_handler.cc')
-rw-r--r--net/base/keygen_handler.cc36
1 files changed, 36 insertions, 0 deletions
diff --git a/net/base/keygen_handler.cc b/net/base/keygen_handler.cc
new file mode 100644
index 0000000..e85dc4d
--- /dev/null
+++ b/net/base/keygen_handler.cc
@@ -0,0 +1,36 @@
+// Copyright (c) 2010 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/base/keygen_handler.h"
+
+#include "base/logging.h"
+
+namespace net {
+
+KeygenHandler::Cache* KeygenHandler::Cache::GetInstance() {
+ return Singleton<Cache>::get();
+}
+
+void KeygenHandler::Cache::Insert(const std::string& public_key_info,
+ const KeyLocation& location) {
+ AutoLock lock(lock_);
+
+ DCHECK(!public_key_info.empty()) << "Only insert valid public key structures";
+ cache_[public_key_info] = location;
+}
+
+bool KeygenHandler::Cache::Find(const std::string& public_key_info,
+ KeyLocation* location) {
+ AutoLock lock(lock_);
+
+ KeyLocationMap::iterator iter = cache_.find(public_key_info);
+
+ if (iter == cache_.end())
+ return false;
+
+ *location = iter->second;
+ return true;
+}
+
+} // namespace net