1#ifndef PUBLIC_KEY_HPP_DRZFSERF
2#define PUBLIC_KEY_HPP_DRZFSERF
4#include <vanetza/security/v2/ecc_point.hpp>
5#include <boost/variant/variant.hpp>
15enum class SymmetricAlgorithm : uint8_t
21enum class PublicKeyAlgorithm : uint8_t
23 ECDSA_NISTP256_With_SHA256 = 0,
36 SymmetricAlgorithm supported_symm_alg;
41using PublicKey = boost::variant<ecdsa_nistp256_with_sha256, ecies_nistp256>;
48PublicKeyAlgorithm get_type(
const PublicKey&);
55size_t get_size(
const PublicKey&);
77std::size_t field_size(PublicKeyAlgorithm);
84std::size_t field_size(SymmetricAlgorithm);
ecdsa_nistp256_with_sha256 specified in TS 103 097 v1.2.1, section 4.2.4
ecies_nistp256 specified in TS 103 097 v1.2.1, section 4.2.4