1#ifndef SUBJECT_ATTRIBUTE_HPP_IRZLEB7C
2#define SUBJECT_ATTRIBUTE_HPP_IRZLEB7C
4#include <vanetza/security/v2/int_x.hpp>
5#include <vanetza/security/v2/public_key.hpp>
6#include <vanetza/security/v2/serialization.hpp>
7#include <boost/variant/variant.hpp>
23 static constexpr uint8_t assurance_mask = 0xE0;
24 static constexpr uint8_t confidence_mask = 0x03;
28 uint8_t assurance()
const
30 return (raw & assurance_mask) >> 5;
33 uint8_t confidence()
const
35 return raw & confidence_mask;
43 ByteBuffer service_specific_permissions;
47enum class SubjectAttributeType : uint8_t {
51 Reconstruction_Value = 3,
53 ITS_AID_SSP_List = 33,
69using SubjectAttribute = boost::variant<
83SubjectAttributeType get_type(
const SubjectAttribute&);
90size_t get_size(
const SubjectAttribute&);
139template<SubjectAttributeType>
163 using type = EccPoint;
169 using type = std::list<IntX>;
175 using type = std::list<ItsAidSsp>;
185template<SubjectAttributeType T>
IntX specified in TS 103 097 v1.2.1, section 4.2.1.
EncryptionKey specified in TS 103 097 v1.2.1, section 6.4.
ItsAidSsp specified in TS 103 097 v1.2.1, section 6.9.
SubjectAssurance specified in TS 103 097 v1.2.1 in section 6.6 and 7.4.1.
VerificationKey specified in TS 103 097 v1.2.1, section 6.4.