client_cert_store_win.h revision a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7
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. 4 5#ifndef NET_SSL_CLIENT_CERT_STORE_WIN_H_ 6#define NET_SSL_CLIENT_CERT_STORE_WIN_H_ 7 8#include "base/basictypes.h" 9#include "base/callback.h" 10#include "base/gtest_prod_util.h" 11#include "net/base/net_export.h" 12#include "net/ssl/client_cert_store.h" 13#include "net/ssl/ssl_cert_request_info.h" 14 15namespace net { 16 17class NET_EXPORT ClientCertStoreWin : public ClientCertStore { 18 public: 19 ClientCertStoreWin(); 20 virtual ~ClientCertStoreWin(); 21 22 // ClientCertStore: 23 virtual void GetClientCerts(const SSLCertRequestInfo& cert_request_info, 24 CertificateList* selected_certs, 25 const base::Closure& callback) OVERRIDE; 26 27 private: 28 friend class ClientCertStoreWinTestDelegate; 29 30 // A hook for testing. Filters |input_certs| using the logic being used to 31 // filter the system store when GetClientCerts() is called. 32 // Implemented by creating a temporary in-memory store and filtering it 33 // using the common logic. 34 bool SelectClientCertsForTesting(const CertificateList& input_certs, 35 const SSLCertRequestInfo& cert_request_info, 36 CertificateList* selected_certs); 37 38 DISALLOW_COPY_AND_ASSIGN(ClientCertStoreWin); 39}; 40 41} // namespace net 42 43#endif // NET_SSL_CLIENT_CERT_STORE_WIN_H_ 44