grpc/include/grpcpp/security
Matthew Stevenson 278978d6f0
[tls] Remove use of SSL_CTX_set_client_CA_list for TLS server credentials. (#33558)
This PR does the following: for the TLS server credentials, stops
calling `SSL_CTX_set_client_CA_list` by default in
`ssl_transport_security.cc`, and gives users a knob to re-enable calling
this API.

## What does the `SSL_CTX_set_client_CA_list` API do?

When this API is called, a gRPC TLS server sends the following data in
the ServerHello: for each certificate in the server's trust bundle, the
CA name in the certificate.

This API does not change the set of certificates trusted by the server
in any way. Rather, it is just providing a hint to the client about what
client certificate should be sent to the server.

## Why are we removing the use of `SSL_CTX_set_client_CA_list` by
default for the TLS server credentials?

Removing the use of this API by default has 2 benefits:
1. Calling this API makes gRPC TLS unusable for servers with a
sufficiently large trust bundle. Indeed, if the server trust bundle is
too large, then the server will always fail to build the ServerHello.
2. Calling this API is introducing a huge amount of overhead (1000s of
bytes) to each ServerHello, so removing this feature will improve
connection establishment latency for all users of the TLS server
credentials.
2023-06-29 09:48:15 -07:00
..
alts_context.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
alts_util.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
audit_logging.h [Audit Logging] Logger and factory APIs in C-Core and C++. (#32750) 2023-04-26 06:44:14 -07:00
auth_context.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
auth_metadata_processor.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
authorization_policy_provider.h Remove `g_glip` and `class GrpcLibraryInterface` (#30414) 2022-11-14 15:30:09 -05:00
binder_credentials.h Expose experimental binder transport API (#27632) 2021-11-01 20:25:22 +08:00
binder_security_policy.h Add SameSignatureSecurityPolicy for binder transport (#27816) 2022-01-18 15:01:01 +08:00
credentials.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
cronet_credentials.h Add enforcement for cpp-style comment license in check_copyright.py (#32273) 2023-02-02 13:00:20 -08:00
server_credentials.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
tls_certificate_provider.h Remove `g_glip` and `class GrpcLibraryInterface` (#30414) 2022-11-14 15:30:09 -05:00
tls_certificate_verifier.h Added verified_root_cert_subject pass up through cpp api (#32335) 2023-03-08 13:41:26 -05:00
tls_credentials_options.h [tls] Remove use of SSL_CTX_set_client_CA_list for TLS server credentials. (#33558) 2023-06-29 09:48:15 -07:00