ssl_client_certificate_selector.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
1// Copyright (c) 2012 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 CHROME_BROWSER_SSL_SSL_CLIENT_CERTIFICATE_SELECTOR_H_
6#define CHROME_BROWSER_SSL_SSL_CLIENT_CERTIFICATE_SELECTOR_H_
7
8#include "base/callback_forward.h"
9
10namespace content {
11class WebContents;
12}
13
14namespace net {
15class HttpNetworkSession;
16class SSLCertRequestInfo;
17class X509Certificate;
18}
19
20namespace chrome {
21
22typedef base::Callback<void(net::X509Certificate*)> SelectCertificateCallback;
23
24// Opens a constrained SSL client certificate selection dialog under |parent|,
25// offering certificates from |cert_request_info|. When the user has made a
26// selection, the dialog will report back to |callback|. |callback| is notified
27// when the dialog closes in call cases; if the user cancels the dialog, we call
28// with a NULL certificate.
29void ShowSSLClientCertificateSelector(
30    content::WebContents* contents,
31    const net::HttpNetworkSession* network_session,
32    net::SSLCertRequestInfo* cert_request_info,
33    const SelectCertificateCallback& callback);
34
35}  // namespace chrome
36
37#endif  // CHROME_BROWSER_SSL_SSL_CLIENT_CERTIFICATE_SELECTOR_H_
38