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.
5 #include "net/ssl/ssl_client_auth_cache.h"
7 #include "base/logging.h"
8 #include "net/cert/x509_certificate.h"
12 SSLClientAuthCache::SSLClientAuthCache() {
13 CertDatabase::GetInstance()->AddObserver(this);
16 SSLClientAuthCache::~SSLClientAuthCache() {
17 CertDatabase::GetInstance()->RemoveObserver(this);
20 bool SSLClientAuthCache::Lookup(
21 const HostPortPair
& server
,
22 scoped_refptr
<X509Certificate
>* certificate
) {
25 AuthCacheMap::iterator iter
= cache_
.find(server
);
26 if (iter
== cache_
.end())
29 *certificate
= iter
->second
;
33 void SSLClientAuthCache::Add(const HostPortPair
& server
,
34 X509Certificate
* value
) {
35 cache_
[server
] = value
;
37 // TODO(wtc): enforce a maximum number of entries.
40 void SSLClientAuthCache::Remove(const HostPortPair
& server
) {
44 void SSLClientAuthCache::OnCertAdded(const X509Certificate
* cert
) {