#pragma once #include "security_module.hpp" #include #include namespace vanetza { namespace pki { using Sha256Function = std::function; ByteBuffer calculate_kdf2(SecurityModule&, const ByteBuffer& shared_secret, const ByteBuffer& kdp, std::size_t dl); ByteBuffer calculate_kdf2(Sha256Function, const ByteBuffer& shared_secret, const ByteBuffer& kdp, std::size_t dl); struct EncryptedSymmetricKey { PublicKey public_key; ByteBuffer authentication_tag; ByteBuffer wrapped_key; }; EncryptedSymmetricKey encrypt_key(SecurityModule&, const SecurityModule::EciesContext&, const ByteBuffer& key, const Sha256Hash& info); } // namespace pki } // namespace vanetza