1#ifndef HEADER_FIELD_HPP_IHIAKD4K
2#define HEADER_FIELD_HPP_IHIAKD4K
4#include <vanetza/security/v2/basic_elements.hpp>
5#include <vanetza/security/v2/certificate.hpp>
6#include <vanetza/security/v2/encryption_parameter.hpp>
7#include <vanetza/security/v2/int_x.hpp>
8#include <vanetza/security/v2/recipient_info.hpp>
9#include <vanetza/security/v2/region.hpp>
10#include <vanetza/security/v2/signer_info.hpp>
11#include <boost/variant/variant.hpp>
22enum class HeaderFieldType : uint8_t
25 Generation_Time_Confidence = 1,
27 Generation_Location = 3,
28 Request_Unrecognized_Certificate = 4,
31 Encryption_Parameters = 129,
36using HeaderField = boost::variant<
38 Time64WithStandardDeviation,
45 std::list<RecipientInfo>
53HeaderFieldType get_type(
const HeaderField& field);
60std::size_t get_size(
const HeaderField& field);
68void serialize(OutputArchive& ar,
const HeaderField& field);
76size_t deserialize(InputArchive& ar, std::list<HeaderField>& list);
83template<HeaderFieldType>
113 using type = std::list<HashedId3>;
125 using type = SignerInfo;
131 using type = EncryptionParameter;
137 using type = std::list<RecipientInfo>;
IntX specified in TS 103 097 v1.2.1, section 4.2.1.
ThreeDLocation specified in TS 103 097 v1.2.1, section 4.2.19.
Time64WithStandardDeviation specified in TS 103 097 v1.2.1, section 4.2.16.