Index: net/ssl/client_cert_store_impl.h |
diff --git a/net/ssl/client_cert_store_impl.h b/net/ssl/client_cert_store_impl.h |
index ff2759e06677acd0e41c333360c2f0a555a8aeb5..6a39c2809040ed816630598677b64d48293c3b7c 100644 |
--- a/net/ssl/client_cert_store_impl.h |
+++ b/net/ssl/client_cert_store_impl.h |
@@ -6,23 +6,38 @@ |
#define NET_SSL_CLIENT_CERT_STORE_IMPL_H_ |
#include "base/basictypes.h" |
+#include "base/callback.h" |
#include "base/gtest_prod_util.h" |
#include "net/base/net_export.h" |
#include "net/ssl/client_cert_store.h" |
#include "net/ssl/ssl_cert_request_info.h" |
+namespace crypto { |
+class CryptoModuleBlockingPasswordDelegate; |
+} |
+ |
namespace net { |
class NET_EXPORT ClientCertStoreImpl : public ClientCertStore { |
public: |
- ClientCertStoreImpl() {} |
- virtual ~ClientCertStoreImpl() {} |
+ ClientCertStoreImpl(); |
+ virtual ~ClientCertStoreImpl(); |
// ClientCertStore: |
virtual void GetClientCerts(const SSLCertRequestInfo& cert_request_info, |
CertificateList* selected_certs, |
const base::Closure& callback) OVERRIDE; |
+#if defined(USE_NSS) |
+ typedef base::Callback<crypto::CryptoModuleBlockingPasswordDelegate*( |
+ const std::string& /* server */)> PasswordDelegateFactory; |
+ // Set a factory that will be used to create a delegate for unlocking PKCS #11 |
+ // tokens. The host:port string of the server requesting client auth will be |
+ // passed to the factory. |
+ void set_password_delegate_factory( |
+ const PasswordDelegateFactory& password_delegate_factory); |
+#endif |
+ |
private: |
friend class ClientCertStoreImplTest; |
@@ -50,6 +65,12 @@ class NET_EXPORT ClientCertStoreImpl : public ClientCertStore { |
CertificateList* selected_certs); |
#endif |
+#if defined(USE_NSS) |
+ // The factory for creating the delegate for requesting a password to a |
+ // PKCS #11 token. May be null. |
+ PasswordDelegateFactory password_delegate_factory_; |
+#endif // defined(USE_NSS) |
+ |
DISALLOW_COPY_AND_ASSIGN(ClientCertStoreImpl); |
}; |