mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
64 lines
1.8 KiB
C++
64 lines
1.8 KiB
C++
// 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;
|
|
|
|
// 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_
|