1
#include "source/common/tls/private_key/private_key_manager_impl.h"
2

            
3
#include "envoy/extensions/transport_sockets/tls/v3/cert.pb.h"
4
#include "envoy/registry/registry.h"
5

            
6
namespace Envoy {
7
namespace Extensions {
8
namespace TransportSockets {
9
namespace Tls {
10

            
11
Envoy::Ssl::PrivateKeyMethodProviderSharedPtr
12
PrivateKeyMethodManagerImpl::createPrivateKeyMethodProvider(
13
    const envoy::extensions::transport_sockets::tls::v3::PrivateKeyProvider& config,
14
24
    Server::Configuration::TransportSocketFactoryContext& factory_context) {
15

            
16
24
  Ssl::PrivateKeyMethodProviderInstanceFactory* factory =
17
24
      Registry::FactoryRegistry<Ssl::PrivateKeyMethodProviderInstanceFactory>::getFactory(
18
24
          config.provider_name());
19

            
20
  // Create a new provider instance with the configuration.
21
24
  if (factory) {
22
24
    return factory->createPrivateKeyMethodProviderInstance(config, factory_context);
23
24
  }
24

            
25
  return nullptr;
26
24
}
27

            
28
} // namespace Tls
29
} // namespace TransportSockets
30
} // namespace Extensions
31
} // namespace Envoy