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; }
28
29
30
31
35
36
37
38
42
43
44
45
49
50
51
52
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>
76 return boost::get<field_type>(field);
79 template<TrailerFieldType T>
84 return boost::get<field_type>(field);
89
90
91
95
96
100
101
102
106
107
108
109
110
111
112
113
114
115ByteBuffer convert_for_signing(
const SecuredMessage& message,
const std::list<TrailerField>& trailer_fields);
118
119
120
121
ChunckPacket is a packet consisting of several memory chunks.
ByteBufferConvertible & operator[](OsiLayer ol)
ChunkPacket & merge(ChunkPacket &packet, OsiLayer from, OsiLayer to)
const ByteBufferConvertible & layer(OsiLayer ol) const
const ByteBufferConvertible & operator[](OsiLayer ol) const
ByteBufferConvertible & layer(OsiLayer ol)
std::size_t size(OsiLayer from, OsiLayer to) const
ChunkPacket extract(OsiLayer from, OsiLayer to)
std::size_t size(OsiLayer from, OsiLayer to) const
buffer_const_range operator[](OsiLayer layer) const
void set_boundary(OsiLayer, unsigned bytes)
const ByteBuffer & buffer() const
CohesivePacket(const ByteBuffer &buffer, OsiLayer layer)
void trim(OsiLayer from, unsigned bytes)
std::size_t size(OsiLayer single_layer) const
value_type operator[](size_type) const
byte_view_range(ByteBuffer &&)
byte_view_range(const ByteBuffer::const_iterator &, const ByteBuffer::const_iterator &)
ByteBuffer::const_pointer data() const
void encode(units::Duration)
units::Duration decode() const
bool after(const Timestamp &other) const
bool before(const Timestamp &other) const
static CertificateValidity valid()
Create CertificateValidity signalling a valid certificate This method is equivalent to default constr...
CertificateValidity(CertificateInvalidReason reason)
CertificateInvalidReason reason() const
Get reason for certificate invalidity This call is only safe if reason is available,...
static DecapConfirm from(VerifyConfirm &&verify_confirm, const SecuredMessageView &msg_view)
Input data for decapsulating a secured message.
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)
const TrailerField * trailer_field(TrailerFieldType type) const
const HeaderField * header_field(HeaderFieldType type) const
TrailerField * trailer_field(TrailerFieldType)
resolve type for matching TrailerFieldType