123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- // Copyright (c) 2011 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef NET_SSL_SSL_CERT_REQUEST_INFO_H_
- #define NET_SSL_SSL_CERT_REQUEST_INFO_H_
- #include <string>
- #include <vector>
- #include "base/memory/ref_counted.h"
- #include "net/base/host_port_pair.h"
- #include "net/base/net_export.h"
- #include "net/ssl/ssl_client_cert_type.h"
- namespace net {
- // The SSLCertRequestInfo class represents server criteria regarding client
- // certificate required for a secure connection.
- //
- // In TLS 1.1, the CertificateRequest
- // message is defined as:
- // enum {
- // rsa_sign(1), dss_sign(2), rsa_fixed_dh(3), dss_fixed_dh(4),
- // rsa_ephemeral_dh_RESERVED(5), dss_ephemeral_dh_RESERVED(6),
- // fortezza_dms_RESERVED(20), (255)
- // } ClientCertificateType;
- //
- // opaque DistinguishedName<1..2^16-1>;
- //
- // struct {
- // ClientCertificateType certificate_types<1..2^8-1>;
- // DistinguishedName certificate_authorities<0..2^16-1>;
- // } CertificateRequest;
- class NET_EXPORT SSLCertRequestInfo
- : public base::RefCountedThreadSafe<SSLCertRequestInfo> {
- public:
- SSLCertRequestInfo();
- void Reset();
- // The host and port of the SSL server that requested client authentication.
- HostPortPair host_and_port;
- // True if the server that issues this request was the HTTPS proxy used in
- // the request. False, if the server was the origin server.
- bool is_proxy = false;
- // List of DER-encoded X.509 DistinguishedName of certificate authorities
- // allowed by the server.
- std::vector<std::string> cert_authorities;
- std::vector<SSLClientCertType> cert_key_types;
- private:
- friend class base::RefCountedThreadSafe<SSLCertRequestInfo>;
- ~SSLCertRequestInfo();
- };
- } // namespace net
- #endif // NET_SSL_SSL_CERT_REQUEST_INFO_H_
|