Chromium Code Reviews| Index: net/ssl/ssl_server_config.h |
| diff --git a/net/ssl/ssl_server_config.h b/net/ssl/ssl_server_config.h |
| index 36d1286b22552ea7da16561f099740bac091cfc1..085a74682da930b9f197e3cb3e4120034405686a 100644 |
| --- a/net/ssl/ssl_server_config.h |
| +++ b/net/ssl/ssl_server_config.h |
| @@ -14,8 +14,16 @@ |
| namespace net { |
| +class ClientCertVerifier; |
| + |
| // A collection of server-side SSL-related configuration settings. |
| struct NET_EXPORT SSLServerConfig { |
| + enum ClientCertType { |
| + NO_CLIENT_CERT, |
| + OPTIONAL_CLIENT_CERT, |
| + REQUIRE_CLIENT_CERT, |
| + }; |
| + |
| // Defaults |
| SSLServerConfig(); |
| ~SSLServerConfig(); |
| @@ -53,9 +61,21 @@ struct NET_EXPORT SSLServerConfig { |
| // If true, causes only ECDHE cipher suites to be enabled. |
| bool require_ecdhe; |
| - // Requires a client certificate for client authentication from the client. |
| - // This doesn't currently enforce certificate validity. |
| - bool require_client_cert; |
| + // Set the requirement for client certificates during handshake |
|
davidben
2016/02/17 22:46:03
Nit: period at end, "Set" -> "Sets"
ryanchung
2016/02/18 01:07:26
Done.
|
| + ClientCertType client_cert_type; |
| + |
| + // List of DER-encoded X.509 DistinguishedName of certificate authorities |
| + // to be included in the CertificateRequest handshake message, |
| + // if client certificates are required. |
| + std::vector<std::string> cert_authorities_; |
| + |
| + // Provides the CertificateVerifier that is to be used to verify |
|
davidben
2016/02/17 22:46:03
Nit: CertificateVerifier -> ClientCertVerifier
ryanchung
2016/02/18 01:07:26
Done.
|
| + // client certificates during the handshake. |
| + // The |client_cert_verifier| continues to be owned by the caller, |
| + // and must outlive any sockets using this SSLServerConfig. |
| + // This field is meaningful only if client certificates are required. |
|
davidben
2016/02/17 22:46:03
Nit: are required -> are requested? Or maybe "if c
ryanchung
2016/02/18 01:07:26
Done.
|
| + // If a verifier is not provided then all certificates are accepted. |
| + ClientCertVerifier* client_cert_verifier; |
| }; |
| } // namespace net |