1#ifndef SECURED_MESSAGE_HPP_MO3HBSXG
2#define SECURED_MESSAGE_HPP_MO3HBSXG
4#include <vanetza/common/its_aid.hpp>
5#include <vanetza/security/v2/header_field.hpp>
6#include <vanetza/security/v2/trailer_field.hpp>
7#include <vanetza/security/v2/payload.hpp>
21 std::list<HeaderField> header_fields;
22 std::list<TrailerField> trailer_fields;
25 uint8_t protocol_version()
const {
return 2; }
39 const HeaderField* header_field(HeaderFieldType type)
const;
53 const TrailerField* trailer_field(TrailerFieldType type)
const;
55 template<HeaderFieldType T>
59 HeaderField* field = header_field(T);
60 return boost::get<field_type>(field);
63 template<HeaderFieldType T>
67 const HeaderField* field = header_field(T);
68 return boost::get<field_type>(field);
71 template<TrailerFieldType T>
75 TrailerField* field = trailer_field(T);
76 return boost::get<field_type>(field);
79 template<TrailerFieldType T>
83 const TrailerField* field = trailer_field(T);
84 return boost::get<field_type>(field);
115ByteBuffer convert_for_signing(
const SecuredMessage& message,
const std::list<TrailerField>& trailer_fields);
Payload specified in TS 103 097 v1.2.1, section 5.2.
SecuredMessage as specified in TS 103 097 v1.2.1, section 5.1.
HeaderField * header_field(HeaderFieldType)
TrailerField * trailer_field(TrailerFieldType)
resolve type for matching TrailerFieldType