OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "net/base/ssl_client_auth_cache.h" | |
6 | |
7 #include "base/logging.h" | |
8 #include "net/base/x509_certificate.h" | |
9 | |
10 namespace net { | |
11 | |
12 SSLClientAuthCache::SSLClientAuthCache() { | |
13 CertDatabase::GetInstance()->AddObserver(this); | |
14 } | |
15 | |
16 SSLClientAuthCache::~SSLClientAuthCache() { | |
17 CertDatabase::GetInstance()->RemoveObserver(this); | |
18 } | |
19 | |
20 bool SSLClientAuthCache::Lookup( | |
21 const std::string& server, | |
22 scoped_refptr<X509Certificate>* certificate) { | |
23 DCHECK(certificate); | |
24 | |
25 AuthCacheMap::iterator iter = cache_.find(server); | |
26 if (iter == cache_.end()) | |
27 return false; | |
28 | |
29 *certificate = iter->second; | |
30 return true; | |
31 } | |
32 | |
33 void SSLClientAuthCache::Add(const std::string& server, | |
34 X509Certificate* value) { | |
35 cache_[server] = value; | |
36 | |
37 // TODO(wtc): enforce a maximum number of entries. | |
38 } | |
39 | |
40 void SSLClientAuthCache::Remove(const std::string& server) { | |
41 cache_.erase(server); | |
42 } | |
43 | |
44 void SSLClientAuthCache::OnCertAdded(const X509Certificate* cert) { | |
45 cache_.clear(); | |
46 } | |
47 | |
48 } // namespace net | |
OLD | NEW |