Line data Source code
1 : #include "source/extensions/transport_sockets/starttls/config.h" 2 : 3 : #include "source/extensions/transport_sockets/starttls/starttls_socket.h" 4 : 5 : namespace Envoy { 6 : namespace Extensions { 7 : namespace TransportSockets { 8 : namespace StartTls { 9 : 10 : Network::DownstreamTransportSocketFactoryPtr 11 : DownstreamStartTlsSocketFactory::createTransportSocketFactory( 12 : const Protobuf::Message& message, Server::Configuration::TransportSocketFactoryContext& context, 13 0 : const std::vector<std::string>& server_names) { 14 0 : const auto& outer_config = MessageUtil::downcastAndValidate< 15 0 : const envoy::extensions::transport_sockets::starttls::v3::StartTlsConfig&>( 16 0 : message, context.messageValidationVisitor()); 17 : 18 0 : auto& raw_socket_config_factory = rawSocketConfigFactory(); 19 0 : auto& tls_socket_config_factory = tlsSocketConfigFactory(); 20 : 21 0 : Network::DownstreamTransportSocketFactoryPtr raw_socket_factory = 22 0 : raw_socket_config_factory.createTransportSocketFactory(outer_config.cleartext_socket_config(), 23 0 : context, server_names); 24 : 25 0 : Network::DownstreamTransportSocketFactoryPtr tls_socket_factory = 26 0 : tls_socket_config_factory.createTransportSocketFactory(outer_config.tls_socket_config(), 27 0 : context, server_names); 28 : 29 0 : return std::make_unique<StartTlsDownstreamSocketFactory>(std::move(raw_socket_factory), 30 0 : std::move(tls_socket_factory)); 31 0 : } 32 : 33 : Network::UpstreamTransportSocketFactoryPtr 34 : UpstreamStartTlsSocketFactory::createTransportSocketFactory( 35 : const Protobuf::Message& message, 36 0 : Server::Configuration::TransportSocketFactoryContext& context) { 37 : 38 0 : const auto& outer_config = MessageUtil::downcastAndValidate< 39 0 : const envoy::extensions::transport_sockets::starttls::v3::UpstreamStartTlsConfig&>( 40 0 : message, context.messageValidationVisitor()); 41 0 : auto& raw_socket_config_factory = rawSocketConfigFactory(); 42 0 : auto& tls_socket_config_factory = tlsSocketConfigFactory(); 43 : 44 0 : Network::UpstreamTransportSocketFactoryPtr raw_socket_factory = 45 0 : raw_socket_config_factory.createTransportSocketFactory(outer_config.cleartext_socket_config(), 46 0 : context); 47 : 48 0 : Network::UpstreamTransportSocketFactoryPtr tls_socket_factory = 49 0 : tls_socket_config_factory.createTransportSocketFactory(outer_config.tls_socket_config(), 50 0 : context); 51 : 52 0 : return std::make_unique<StartTlsSocketFactory>(std::move(raw_socket_factory), 53 0 : std::move(tls_socket_factory)); 54 0 : } 55 : 56 : LEGACY_REGISTER_FACTORY(DownstreamStartTlsSocketFactory, 57 : Server::Configuration::DownstreamTransportSocketConfigFactory, "starttls"); 58 : 59 : LEGACY_REGISTER_FACTORY(UpstreamStartTlsSocketFactory, 60 : Server::Configuration::UpstreamTransportSocketConfigFactory, "starttls"); 61 : 62 : } // namespace StartTls 63 : } // namespace TransportSockets 64 : } // namespace Extensions 65 : } // namespace Envoy