Vanetza
Loading...
Searching...
No Matches
asn1_types.hpp
1#pragma once
2
3// forward declarations of base types
4typedef struct OCTET_STRING OCTET_STRING_t;
5typedef struct ASN__PRIMITIVE_TYPE_s INTEGER_t;
6using Vanetza_Security_Uint64_t = INTEGER_t;
7
8#define ASN1_TYPE_ALIAS(name) Vanetza_Security_ ## name ## _t
9#define ASN1_TYPE_NAME(name) Vanetza_Security_ ## name
10
11#define FWD_ALIAS(name, base) \
12 using ASN1_TYPE_ALIAS(name) = ASN1_TYPE_ALIAS(base); \
13 namespace vanetza { namespace security { namespace v3 { namespace asn1 { \
14 using name = ::ASN1_TYPE_ALIAS(name); \
15 }}}}
16
17#define FWD_OCTET_STRING(name) \
18 using ASN1_TYPE_ALIAS(name) = OCTET_STRING_t; \
19 namespace vanetza { namespace security { namespace v3 { namespace asn1 { \
20 using name = ::ASN1_TYPE_ALIAS(name); \
21 }}}}
22
23#define FWD_STRUCT(name) \
24 typedef struct ASN1_TYPE_NAME(name) ASN1_TYPE_ALIAS(name); \
25 namespace vanetza { namespace security { namespace v3 { namespace asn1 { \
26 using name = ::ASN1_TYPE_ALIAS(name); \
27 }}}}
28
29#define FWD_NATIVE_INTEGER(name) \
30 using ASN1_TYPE_ALIAS(name) = long; \
31 namespace vanetza { namespace security { namespace v3 { namespace asn1 { \
32 using name = ::ASN1_TYPE_ALIAS(name); \
33 }}}}
34
35FWD_OCTET_STRING(BitmapSsp)
36FWD_OCTET_STRING(HashedId8)
37FWD_OCTET_STRING(Opaque)
38
39FWD_NATIVE_INTEGER(Latitude)
40FWD_NATIVE_INTEGER(Longitude)
41
42FWD_STRUCT(AesCcmCiphertext)
43FWD_STRUCT(CertificateBase)
44FWD_STRUCT(CircularRegion)
45FWD_STRUCT(EccP256CurvePoint)
46FWD_STRUCT(EccP384CurvePoint)
47FWD_STRUCT(EciesP256EncryptedKey)
48FWD_STRUCT(EncryptedDataEncryptionKey)
49FWD_STRUCT(GeographicRegion)
50FWD_STRUCT(HashedData)
51FWD_STRUCT(HeaderInfo)
52FWD_STRUCT(Ieee1609Dot2Content)
53FWD_STRUCT(Ieee1609Dot2Data)
54FWD_STRUCT(PKRecipientInfo)
55FWD_STRUCT(PsidGroupPermissions)
56FWD_STRUCT(PsidSsp)
57FWD_STRUCT(PsidSspRange)
58FWD_STRUCT(PolygonalRegion)
59FWD_STRUCT(PublicEncryptionKey)
60FWD_STRUCT(PublicVerificationKey)
61FWD_STRUCT(RecipientInfo)
62FWD_STRUCT(RectangularRegion)
63FWD_STRUCT(SequenceOfCertificate)
64FWD_STRUCT(SequenceOfHashedId3)
65FWD_STRUCT(SequenceOfPsidGroupPermissions)
66FWD_STRUCT(SequenceOfPsidSsp)
67FWD_STRUCT(SequenceOfRectangularRegion)
68FWD_STRUCT(ServiceSpecificPermissions)
69FWD_STRUCT(Signature)
70FWD_STRUCT(SignedData)
71FWD_STRUCT(SignedDataPayload)
72FWD_STRUCT(SignerIdentifier)
73FWD_STRUCT(SspRange)
74FWD_STRUCT(SymmetricCiphertext)
75FWD_STRUCT(SymmetricEncryptionKey)
76FWD_STRUCT(ThreeDLocation)
77FWD_STRUCT(ToBeSignedData)
78FWD_STRUCT(TwoDLocation)
79FWD_STRUCT(ValidityPeriod)
80FWD_STRUCT(VerificationKeyIndicator)
81
82FWD_ALIAS(Certificate, CertificateBase)
83FWD_ALIAS(EtsiTs103097Certificate, CertificateBase)
84FWD_ALIAS(EtsiTs103097Data, Ieee1609Dot2Data)
85FWD_ALIAS(Time64, Uint64)
86
87#undef ASN1_TYPE_ALIAS
88#undef ASN1_TYPE_NAME
89#undef FWD_ALIAS
90#undef FWD_NATIVE_INTEGER
91#undef FWT_OCTET_STRING
92#undef FWD_STRUCT
93
94namespace vanetza
95{
96namespace asn1
97{
98} // namespace asn1
99
100namespace security
101{
102namespace v3
103{
104namespace asn1
105{
106
107using namespace vanetza::asn1;
108
109} // namespace asn1
110} // namespace v3
111} // namespace security
112} // namespace vanetza