#pragma once #include "certificate_storage.hpp" #include "credential_storage.hpp" #include "crl_store.hpp" #include "filesystem.hpp" #include "hashed_id8.hpp" #include "security_module.hpp" #include "station_config.hpp" #include "trust_list_storage.hpp" #include namespace vanetza { namespace pki { struct MainConfig { std::filesystem::path config_path; std::filesystem::path data_path; std::string dc_url; HashedId8 root_ca_hid8; std::shared_ptr station; std::shared_ptr security; std::shared_ptr root_ca; // root CA certificates std::shared_ptr enrolment_credentials; // station's EC certificates std::shared_ptr tickets; // station's authorization tickets std::shared_ptr tlm; // trust list manager certificates std::shared_ptr authorization_authorities; // AA certs extracted from CTLs std::shared_ptr enrolment_authorities; // EA certs extracted from CTLs std::shared_ptr credentials; // private keys std::shared_ptr trust_lists; std::shared_ptr crl_store; // certificate revocation lists }; boost::optional lookup_dc_url(const std::filesystem::path& ectl_file, const HashedId8& root_ca); } // namespace pki } // namespace vanetza