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 #ifndef NET_BASE_SSL_CERT_REQUEST_INFO_H_
6 #define NET_BASE_SSL_CERT_REQUEST_INFO_H_
12 #include "base/memory/ref_counted.h"
13 #include "net/base/net_export.h"
17 class X509Certificate
;
19 // The SSLCertRequestInfo class contains the info that allows a user to
20 // select a certificate to send to the SSL server for client authentication.
21 class NET_EXPORT SSLCertRequestInfo
22 : public base::RefCountedThreadSafe
<SSLCertRequestInfo
> {
28 // The host and port of the SSL server that requested client authentication.
29 std::string host_and_port
;
31 // True if the server that issues this request was the HTTPS proxy used in
32 // the request. False, if the server was the origin server.
35 // A list of client certificates that match the server's criteria in the
36 // SSL CertificateRequest message. In TLS 1.0, the CertificateRequest
37 // message is defined as:
39 // rsa_sign(1), dss_sign(2), rsa_fixed_dh(3), dss_fixed_dh(4),
41 // } ClientCertificateType;
43 // opaque DistinguishedName<1..2^16-1>;
46 // ClientCertificateType certificate_types<1..2^8-1>;
47 // DistinguishedName certificate_authorities<3..2^16-1>;
48 // } CertificateRequest;
49 std::vector
<scoped_refptr
<X509Certificate
> > client_certs
;
52 friend class base::RefCountedThreadSafe
<SSLCertRequestInfo
>;
54 ~SSLCertRequestInfo();
59 #endif // NET_BASE_SSL_CERT_REQUEST_INFO_H_