1 // Copyright 2013 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 #ifndef NET_SSL_CLIENT_CERT_STORE_CHROMEOS_H_
6 #define NET_SSL_CLIENT_CERT_STORE_CHROMEOS_H_
10 #include "crypto/scoped_nss_types.h"
11 #include "net/cert/nss_profile_filter_chromeos.h"
12 #include "net/ssl/client_cert_store_nss.h"
16 class NET_EXPORT ClientCertStoreChromeOS
: public ClientCertStoreNSS
{
18 // Constructs a ClientCertStore that will return client certs available on
19 // the user's private and public slots. If |use_system_slot| is true, certs on
20 // the system slot will also be returned.
21 ClientCertStoreChromeOS(
23 const std::string
& username_hash
,
24 const PasswordDelegateFactory
& password_delegate_factory
);
25 virtual ~ClientCertStoreChromeOS();
27 // ClientCertStoreNSS:
28 virtual void GetClientCerts(const SSLCertRequestInfo
& cert_request_info
,
29 CertificateList
* selected_certs
,
30 const base::Closure
& callback
) override
;
33 // ClientCertStoreNSS:
34 virtual void GetClientCertsImpl(CERTCertList
* cert_list
,
35 const SSLCertRequestInfo
& request
,
37 CertificateList
* selected_certs
) override
;
40 void DidGetSystemAndPrivateSlot(const SSLCertRequestInfo
* request
,
41 CertificateList
* selected_certs
,
42 const base::Closure
& callback
,
43 crypto::ScopedPK11Slot system_slot
,
44 crypto::ScopedPK11Slot private_slot
);
46 bool use_system_slot_
;
47 std::string username_hash_
;
48 NSSProfileFilterChromeOS profile_filter_
;
50 DISALLOW_COPY_AND_ASSIGN(ClientCertStoreChromeOS
);
55 #endif // NET_SSL_CLIENT_CERT_STORE_CHROMEOS_H_