Line data Source code
1 : #pragma once 2 : 3 : #include "envoy/config/typed_config.h" 4 : #include "envoy/extensions/transport_sockets/tls/v3/cert.pb.h" 5 : #include "envoy/registry/registry.h" 6 : #include "envoy/ssl/private_key/private_key.h" 7 : 8 : namespace Envoy { 9 : namespace Ssl { 10 : 11 : // Base class which the private key operation provider implementations can register. 12 : 13 : class PrivateKeyMethodProviderInstanceFactory : public Config::UntypedFactory { 14 : public: 15 : ~PrivateKeyMethodProviderInstanceFactory() override = default; 16 : 17 : /** 18 : * Create a particular PrivateKeyMethodProvider implementation. If the implementation is 19 : * unable to produce a PrivateKeyMethodProvider with the provided parameters, it should throw 20 : * an EnvoyException. The returned pointer should always be valid. 21 : * @param config supplies the custom proto configuration for the PrivateKeyMethodProvider 22 : * @param context supplies the factory context 23 : */ 24 : virtual PrivateKeyMethodProviderSharedPtr createPrivateKeyMethodProviderInstance( 25 : const envoy::extensions::transport_sockets::tls::v3::PrivateKeyProvider& config, 26 : Server::Configuration::TransportSocketFactoryContext& factory_context) PURE; 27 : 28 0 : std::string category() const override { return "envoy.tls.key_providers"; }; 29 : }; 30 : 31 : } // namespace Ssl 32 : } // namespace Envoy