2#ifndef SECURED_MESSAGE_HPP_DCBC74AC
3#define SECURED_MESSAGE_HPP_DCBC74AC
5#include <vanetza/asn1/asn1c_wrapper.hpp>
6#include <vanetza/asn1/security/EtsiTs103097Data.h>
7#include <vanetza/common/archives.hpp>
8#include <vanetza/common/its_aid.hpp>
9#include <vanetza/net/packet_variant.hpp>
10#include <vanetza/security/hashed_id.hpp>
11#include <vanetza/security/signature.hpp>
12#include <vanetza/security/v3/certificate.hpp>
14#include <boost/optional/optional_fwd.hpp>
15#include <boost/variant/variant_fwd.hpp>
26 using Time64 = std::uint64_t;
27 using SignerIdentifier = boost::variant<const HashedId8_t*, const Certificate_t*>;
31 uint8_t protocol_version()
const;
32 ItsAid its_aid()
const;
33 PacketVariant payload()
const;
34 bool is_signed()
const;
35 boost::optional<Time64> generation_time()
const;
36 boost::optional<Signature> signature()
const;
38 ByteBuffer signing_payload()
const;
65ByteBuffer get_payload(
const Opaque_t*);
68boost::optional<HashedId8> get_certificate_id(
const SecuredMessage::SignerIdentifier&);