This directory contains the implementation of gRPC's handshaker framework, which is responsible for establishing a secure connection between a client and a server.
The handshaker framework provides a pluggable mechanism for performing various handshakes, such as TLS, ALTS, and HTTP CONNECT. It is designed to be extensible, allowing new handshaker implementations to be added easily.
handshaker.h/handshaker.cc: Defines the coreHandshakerclass, which represents a single handshaking operation.handshaker_factory.h: Defines theHandshakerFactoryclass, which is responsible for creatingHandshakerinstances.handshaker_registry.h/handshaker_registry.cc: Defines a registry forHandshakerFactoryinstances, allowing handshakers to be looked up by name.proxy_mapper.h: Defines theProxyMapperinterface, which is used to determine the proxy settings for a given target address.proxy_mapper_registry.h/proxy_mapper_registry.cc: Defines a registry forProxyMapperinstances.endpoint_info/: Contains theEndpointInfoclass, which is a data structure that contains information about the local and remote endpoints of a connection.http_connect/: Contains the implementation of the HTTP CONNECT handshaker.security/: Contains the implementation of the security handshakers, which are responsible for performing TLS and ALTS handshakes.tcp_connect/: Contains a basic handshaker for TCP connections.
- The handshaker framework is a critical component of gRPC's security infrastructure.
- It is responsible for ensuring that all connections are properly authenticated and encrypted.
- The framework is designed to be flexible and extensible, allowing it to be adapted to different security requirements.