OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NET_BASE_SSL_CERT_REQUEST_INFO_H_ | 5 #ifndef NET_BASE_SSL_CERT_REQUEST_INFO_H_ |
6 #define NET_BASE_SSL_CERT_REQUEST_INFO_H_ | 6 #define NET_BASE_SSL_CERT_REQUEST_INFO_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "base/ref_counted.h" | 11 #include "base/ref_counted.h" |
12 | 12 |
13 namespace net { | 13 namespace net { |
14 | 14 |
15 class X509Certificate; | 15 class X509Certificate; |
16 | 16 |
17 // The SSLCertRequestInfo class contains the info that allows a user to | 17 // The SSLCertRequestInfo class contains the info that allows a user to |
18 // select a certificate to send to the SSL server for client authentication. | 18 // select a certificate to send to the SSL server for client authentication. |
19 class SSLCertRequestInfo | 19 class SSLCertRequestInfo |
20 : public base::RefCountedThreadSafe<SSLCertRequestInfo> { | 20 : public base::RefCountedThreadSafe<SSLCertRequestInfo> { |
21 public: | 21 public: |
22 // The host and port of the SSL server that requested client authentication. | 22 // The host and port of the SSL server that requested client authentication. |
23 std::string host_and_port; | 23 std::string host_and_port; |
24 | 24 |
25 // A list of client certificates that match the server's criteria in the | 25 // A list of client certificates that match the server's criteria in the |
26 // SSL CertificateRequest message. In TLS 1.0, the CertificateRequest | 26 // SSL CertificateRequest message. In TLS 1.0, the CertificateRequest |
27 // message is defined as: | 27 // message is defined as: |
| 28 // enum { |
| 29 // rsa_sign(1), dss_sign(2), rsa_fixed_dh(3), dss_fixed_dh(4), |
| 30 // (255) |
| 31 // } ClientCertificateType; |
| 32 // |
| 33 // opaque DistinguishedName<1..2^16-1>; |
| 34 // |
28 // struct { | 35 // struct { |
29 // ClientCertificateType certificate_types<1..2^8-1>; | 36 // ClientCertificateType certificate_types<1..2^8-1>; |
30 // DistinguishedName certificate_authorities<3..2^16-1>; | 37 // DistinguishedName certificate_authorities<3..2^16-1>; |
31 // } CertificateRequest; | 38 // } CertificateRequest; |
32 std::vector<scoped_refptr<X509Certificate> > client_certs; | 39 std::vector<scoped_refptr<X509Certificate> > client_certs; |
33 }; | 40 }; |
34 | 41 |
35 } // namespace net | 42 } // namespace net |
36 | 43 |
37 #endif // NET_BASE_SSL_CERT_REQUEST_INFO_H_ | 44 #endif // NET_BASE_SSL_CERT_REQUEST_INFO_H_ |
OLD | NEW |