Vanetza
Loading...
Searching...
No Matches
secured_message.hpp
1#ifndef BAAED6CC_75E1_4851_B84B_7B90FD87FBAC
2#define BAAED6CC_75E1_4851_B84B_7B90FD87FBAC
3
4#include <vanetza/common/its_aid.hpp>
5#include <vanetza/common/serialization.hpp>
6#include <vanetza/net/packet_variant.hpp>
7#include <vanetza/security/v2/secured_message.hpp>
8#include <vanetza/security/v3/secured_message.hpp>
9#include <boost/variant/variant.hpp>
10
11namespace vanetza
12{
13namespace security
14{
15
16using SecuredMessage = boost::variant<v2::SecuredMessage, v3::SecuredMessage>;
17
19{
20public:
21 explicit SecuredMessageView(const SecuredMessage& msg);
22
23 template<typename Visitor>
24 typename Visitor::result_type apply_visitor(Visitor& visitor) const
25 {
26 return m_variant.apply_visitor(visitor);
27 }
28
29private:
30 boost::variant<const v2::SecuredMessage&, const v3::SecuredMessage&> m_variant;
31};
32
33ItsAid get_its_aid(const SecuredMessage&);
34ItsAid get_its_aid(const SecuredMessageView&);
35
36std::size_t get_size(const SecuredMessage& msg);
37std::size_t get_size(const SecuredMessageView& msg);
38
39void serialize(OutputArchive& ar, const SecuredMessage& msg);
40void serialize(OutputArchive& ar, const SecuredMessageView& msg);
41
42std::size_t deserialize(InputArchive& ar, SecuredMessage&);
43
44PacketVariant get_payload_copy(const SecuredMessage&);
45PacketVariant get_payload_copy(const SecuredMessageView&);
46
47} // namespace security
48} // namespace vanetza
49
50#endif /* BAAED6CC_75E1_4851_B84B_7B90FD87FBAC */
ChunckPacket is a packet consisting of several memory chunks.
ByteBufferConvertible & operator[](OsiLayer ol)
ChunkPacket & merge(ChunkPacket &packet, OsiLayer from, OsiLayer to)
std::size_t size() const
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
std::size_t size() 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
Definition byte_view.cpp:48
byte_view_range(ByteBuffer &&)
Definition byte_view.cpp:37
byte_view_range(const ByteBuffer::const_iterator &, const ByteBuffer::const_iterator &)
Definition byte_view.cpp:27
ByteBuffer::const_pointer data() const
Definition byte_view.cpp:42
void encode(units::Duration)
Definition lifetime.cpp:45
units::Duration decode() const
Definition lifetime.cpp:59
bool after(const Timestamp &other) const
Definition timestamp.cpp:76
bool before(const Timestamp &other) const
Definition timestamp.cpp:71
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.
SecuredMessage as specified in TS 103 097 v1.2.1, section 5.1.