Line data Source code
1 : #pragma once 2 : 3 : #include "envoy/registry/registry.h" 4 : #include "envoy/server/transport_socket_config.h" 5 : 6 : namespace Envoy { 7 : namespace Extensions { 8 : namespace TransportSockets { 9 : namespace Tls { 10 : 11 : /** 12 : * Config registration for the BoringSSL transport socket factory. 13 : * @see TransportSocketConfigFactory. 14 : */ 15 : class SslSocketConfigFactory : public virtual Server::Configuration::TransportSocketConfigFactory { 16 : public: 17 0 : ~SslSocketConfigFactory() override = default; 18 346 : std::string name() const override { return "envoy.transport_sockets.tls"; } 19 : }; 20 : 21 : class UpstreamSslSocketFactory : public Server::Configuration::UpstreamTransportSocketConfigFactory, 22 : public SslSocketConfigFactory { 23 : public: 24 : Network::UpstreamTransportSocketFactoryPtr createTransportSocketFactory( 25 : const Protobuf::Message& config, 26 : Server::Configuration::TransportSocketFactoryContext& context) override; 27 : ProtobufTypes::MessagePtr createEmptyConfigProto() override; 28 : }; 29 : 30 : DECLARE_FACTORY(UpstreamSslSocketFactory); 31 : 32 : class DownstreamSslSocketFactory 33 : : public Server::Configuration::DownstreamTransportSocketConfigFactory, 34 : public SslSocketConfigFactory { 35 : public: 36 : Network::DownstreamTransportSocketFactoryPtr 37 : createTransportSocketFactory(const Protobuf::Message& config, 38 : Server::Configuration::TransportSocketFactoryContext& context, 39 : const std::vector<std::string>& server_names) override; 40 : ProtobufTypes::MessagePtr createEmptyConfigProto() override; 41 : }; 42 : 43 : DECLARE_FACTORY(DownstreamSslSocketFactory); 44 : 45 : class SslContextManagerFactory : public Ssl::ContextManagerFactory { 46 : public: 47 : Ssl::ContextManagerPtr createContextManager(TimeSource& time_source) override; 48 : }; 49 : 50 : DECLARE_FACTORY(SslContextManagerFactory); 51 : 52 : } // namespace Tls 53 : } // namespace TransportSockets 54 : } // namespace Extensions 55 : } // namespace Envoy