1#include <vanetza/common/factory.hpp>
2#include <vanetza/security/backend.hpp>
14 BackendRegistrar(
const std::string& name)
16 auto f = []() {
return std::unique_ptr<vanetza::security::Backend> {
new T() }; };
25#define VANETZA_REGISTER_CRYPTO_BACKEND(clazz) \
27 using namespace vanetza::security; \
28 static const BackendRegistrar<clazz> clazz##Factory(clazz::backend_name); \
31#include <vanetza/security/backend_null.hpp>
32VANETZA_REGISTER_CRYPTO_BACKEND(BackendNull)
34#ifdef VANETZA_WITH_CRYPTOPP
35# include <vanetza/security/backend_cryptopp.hpp>
36 VANETZA_REGISTER_CRYPTO_BACKEND(BackendCryptoPP)
39#ifdef VANETZA_WITH_OPENSSL
40# include <vanetza/security/backend_openssl.hpp>
41 VANETZA_REGISTER_CRYPTO_BACKEND(BackendOpenSsl)
49const Factory<Backend>& builtin_backends()
51 return backend_factory;
54std::unique_ptr<Backend> create_backend(
const std::string& name,
const Factory<Backend>& factory)
56 if (name ==
"default") {
57 return factory.create();
59 return factory.create(name);
bool configure_default(const std::string &name)
bool add(const std::string &name, Function f)