Vanetza
Loading...
Searching...
No Matches
vanetza::security::v3::SecuredMessage Struct Reference
Inheritance diagram for vanetza::security::v3::SecuredMessage:

Public Types

using Time64 = std::uint64_t
using SignerIdentifier = boost::variant<const asn1::HashedId8*, const asn1::Certificate*>
using base
typedef asn1::EtsiTs103097Data asn1c_type

Public Member Functions

uint8_t protocol_version () const
ItsAid its_aid () const
PacketVariant payload () const
bool is_signed () const
bool is_encrypted () const
boost::optional< Time64 > generation_time () const
boost::optional< Signaturesignature () const
SignerIdentifier signer_identifier () const
ByteBuffer signing_payload () const
HashAlgorithm hash_id () const
void set_its_aid (ItsAid its_aid)
void set_generation_time (Time64 time)
void set_generation_location (const asn1::ThreeDLocation &location)
void set_payload (const ByteBuffer &payload)
void set_external_payload_hash (const Sha256Digest &hash)
void set_hash_id (HashAlgorithm)
void set_signature (const Signature &signature)
std::list< HashedId3 > get_inline_p2pcd_request () const
void set_inline_p2pcd_request (std::list< HashedId3 > requests)
void add_inline_p2pcd_request (HashedId3 unkown_certificate_digest)
void set_signature (const SomeEcdsaSignature &signature)
void set_dummy_signature ()
void set_signer_identifier_self ()
void set_signer_identifier (const HashedId8 &)
void set_signer_identifier (const Certificate &)
void set_requested_certificate (const Certificate &)
void get_aes_ccm_ciphertext (ByteBuffer &ccm_ciphertext, std::array< uint8_t, 12 > &nonce) const
void set_aes_ccm_ciphertext (const ByteBuffer &ccm_ciphertext, const std::array< uint8_t, 12 > &nonce)
void set_cert_recip_info (const HashedId8 &recipient_id, const KeyType curve_type, const std::array< uint8_t, 16 > &ecies_ciphertext, const std::array< uint8_t, 16 > &ecies_tag, const ecdsa256::PublicKey &ecies_pub_key)
bool check_psk_match (const std::array< uint8_t, 16 > &psk) const
ByteBuffer encode () const
bool decode (const ByteBuffer &buffer)
std::size_t size () const
asn1c_type & operator* ()
const asn1c_type & operator* () const
asn1c_type * operator-> ()
const asn1c_type * operator-> () const
const asn1c_type * content () const
asn1c_type * content ()
bool operator== (const asn1c_wrapper_common &rhs) const
bool operator!= (const asn1c_wrapper_common &rhs) const
bool validate () const
bool validate (std::string &error) const
int compare (const asn1c_wrapper_common &other) const
int print () const
int print (FILE *stream) const
void swap (asn1c_wrapper_common &other) noexcept

Static Public Member Functions

static SecuredMessage with_signed_data ()
static SecuredMessage with_signed_data_hash ()
static SecuredMessage with_encrypted_data ()

Protected Attributes

asn1c_type * m_struct
asn_TYPE_descriptor_t & m_type

Detailed Description

Definition at line 28 of file secured_message.hpp.

Member Typedef Documentation

◆ asn1c_type

typedef asn1::EtsiTs103097Data vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::asn1c_type
inherited

Definition at line 47 of file asn1c_wrapper.hpp.

◆ base

using vanetza::asn1::asn1c_oer_wrapper< asn1::EtsiTs103097Data >::base
inherited

Definition at line 219 of file asn1c_wrapper.hpp.

◆ SignerIdentifier

using vanetza::security::v3::SecuredMessage::SignerIdentifier = boost::variant<const asn1::HashedId8*, const asn1::Certificate*>

Definition at line 31 of file secured_message.hpp.

◆ Time64

using vanetza::security::v3::SecuredMessage::Time64 = std::uint64_t

Definition at line 30 of file secured_message.hpp.

Constructor & Destructor Documentation

◆ SecuredMessage()

vanetza::security::v3::SecuredMessage::SecuredMessage ( )

Definition at line 149 of file secured_message.cpp.

Member Function Documentation

◆ add_inline_p2pcd_request()

void vanetza::security::v3::SecuredMessage::add_inline_p2pcd_request ( HashedId3 unkown_certificate_digest)

Definition at line 235 of file secured_message.cpp.

◆ check_psk_match()

bool vanetza::security::v3::SecuredMessage::check_psk_match ( const std::array< uint8_t, 16 > & psk) const

Definition at line 538 of file secured_message.cpp.

◆ compare()

int vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::compare ( const asn1c_wrapper_common & other) const
inlineinherited

Compare ASN.1 types

Parameters
otherOther ASN.1 type to compare with
Returns
0 if equal, <0 if other is "greater", >0 if other is "smaller"

Definition at line 119 of file asn1c_wrapper.hpp.

◆ content() [1/2]

asn1c_type * vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::content ( )
inlineinherited

Definition at line 82 of file asn1c_wrapper.hpp.

◆ content() [2/2]

const asn1c_type * vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::content ( ) const
inlineinherited

Definition at line 81 of file asn1c_wrapper.hpp.

◆ decode()

bool vanetza::asn1::asn1c_oer_wrapper< asn1::EtsiTs103097Data >::decode ( const ByteBuffer & buffer)
inlineinherited

Try to decode ASN.1 struct from byte buffer

Parameters
bufferinput data
Deprecated
use decode_per instead
Returns
true if decoding has been successful

Definition at line 237 of file asn1c_wrapper.hpp.

◆ encode()

ByteBuffer vanetza::asn1::asn1c_oer_wrapper< asn1::EtsiTs103097Data >::encode ( ) const
inlineinherited

Encode ASN.1 struct into byte buffer

Returns
byte buffer containing serialized ASN.1 struct

Definition at line 226 of file asn1c_wrapper.hpp.

◆ generation_time()

boost::optional< SecuredMessage::Time64 > vanetza::security::v3::SecuredMessage::generation_time ( ) const

Definition at line 584 of file secured_message.cpp.

◆ get_aes_ccm_ciphertext()

void vanetza::security::v3::SecuredMessage::get_aes_ccm_ciphertext ( ByteBuffer & ccm_ciphertext,
std::array< uint8_t, 12 > & nonce ) const

Definition at line 474 of file secured_message.cpp.

◆ get_inline_p2pcd_request()

std::list< HashedId3 > vanetza::security::v3::SecuredMessage::get_inline_p2pcd_request ( ) const

Definition at line 203 of file secured_message.cpp.

◆ hash_id()

HashAlgorithm vanetza::security::v3::SecuredMessage::hash_id ( ) const

Definition at line 412 of file secured_message.cpp.

◆ is_encrypted()

bool vanetza::security::v3::SecuredMessage::is_encrypted ( ) const

Definition at line 579 of file secured_message.cpp.

◆ is_signed()

bool vanetza::security::v3::SecuredMessage::is_signed ( ) const

Definition at line 574 of file secured_message.cpp.

◆ its_aid()

ItsAid vanetza::security::v3::SecuredMessage::its_aid ( ) const

Definition at line 159 of file secured_message.cpp.

◆ operator!=()

bool vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::operator!= ( const asn1c_wrapper_common & rhs) const
inlineinherited

Definition at line 89 of file asn1c_wrapper.hpp.

◆ operator*() [1/2]

asn1c_type & vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::operator* ( )
inlineinherited

Definition at line 75 of file asn1c_wrapper.hpp.

◆ operator*() [2/2]

const asn1c_type & vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::operator* ( ) const
inlineinherited

Definition at line 77 of file asn1c_wrapper.hpp.

◆ operator->() [1/2]

asn1c_type * vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::operator-> ( )
inlineinherited

Definition at line 76 of file asn1c_wrapper.hpp.

◆ operator->() [2/2]

const asn1c_type * vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::operator-> ( ) const
inlineinherited

Definition at line 78 of file asn1c_wrapper.hpp.

◆ operator==()

bool vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::operator== ( const asn1c_wrapper_common & rhs) const
inlineinherited

Definition at line 85 of file asn1c_wrapper.hpp.

◆ payload()

PacketVariant vanetza::security::v3::SecuredMessage::payload ( ) const

Definition at line 370 of file secured_message.cpp.

◆ print() [1/2]

int vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::print ( ) const
inlineinherited

Print ASN.1 type to standard output

Returns
0 on success, -1 on error

Definition at line 128 of file asn1c_wrapper.hpp.

◆ print() [2/2]

int vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::print ( FILE * stream) const
inlineinherited

Print ASN.1 type to some file stream

Parameters
streamOutput stream
Returns
0 on success, -1 on error

Definition at line 138 of file asn1c_wrapper.hpp.

◆ protocol_version()

uint8_t vanetza::security::v3::SecuredMessage::protocol_version ( ) const

Definition at line 154 of file secured_message.cpp.

◆ set_aes_ccm_ciphertext()

void vanetza::security::v3::SecuredMessage::set_aes_ccm_ciphertext ( const ByteBuffer & ccm_ciphertext,
const std::array< uint8_t, 12 > & nonce )

Definition at line 486 of file secured_message.cpp.

◆ set_cert_recip_info()

void vanetza::security::v3::SecuredMessage::set_cert_recip_info ( const HashedId8 & recipient_id,
const KeyType curve_type,
const std::array< uint8_t, 16 > & ecies_ciphertext,
const std::array< uint8_t, 16 > & ecies_tag,
const ecdsa256::PublicKey & ecies_pub_key )

Definition at line 498 of file secured_message.cpp.

◆ set_dummy_signature()

void vanetza::security::v3::SecuredMessage::set_dummy_signature ( )

Definition at line 247 of file secured_message.cpp.

◆ set_external_payload_hash()

void vanetza::security::v3::SecuredMessage::set_external_payload_hash ( const Sha256Digest & hash)

Definition at line 403 of file secured_message.cpp.

◆ set_generation_location()

void vanetza::security::v3::SecuredMessage::set_generation_location ( const asn1::ThreeDLocation & location)

Definition at line 191 of file secured_message.cpp.

◆ set_generation_time()

void vanetza::security::v3::SecuredMessage::set_generation_time ( Time64 time)

Definition at line 181 of file secured_message.cpp.

◆ set_hash_id()

void vanetza::security::v3::SecuredMessage::set_hash_id ( HashAlgorithm hash)

Definition at line 433 of file secured_message.cpp.

◆ set_inline_p2pcd_request()

void vanetza::security::v3::SecuredMessage::set_inline_p2pcd_request ( std::list< HashedId3 > requests)

Definition at line 218 of file secured_message.cpp.

◆ set_its_aid()

void vanetza::security::v3::SecuredMessage::set_its_aid ( ItsAid its_aid)

Definition at line 171 of file secured_message.cpp.

◆ set_payload()

void vanetza::security::v3::SecuredMessage::set_payload ( const ByteBuffer & payload)

Definition at line 388 of file secured_message.cpp.

◆ set_requested_certificate()

void vanetza::security::v3::SecuredMessage::set_requested_certificate ( const Certificate & cert)

Definition at line 659 of file secured_message.cpp.

◆ set_signature() [1/2]

void vanetza::security::v3::SecuredMessage::set_signature ( const Signature & signature)

Definition at line 271 of file secured_message.cpp.

◆ set_signature() [2/2]

void vanetza::security::v3::SecuredMessage::set_signature ( const SomeEcdsaSignature & signature)

Definition at line 313 of file secured_message.cpp.

◆ set_signer_identifier() [1/2]

void vanetza::security::v3::SecuredMessage::set_signer_identifier ( const Certificate & cert)

Definition at line 465 of file secured_message.cpp.

◆ set_signer_identifier() [2/2]

void vanetza::security::v3::SecuredMessage::set_signer_identifier ( const HashedId8 & digest)

Definition at line 456 of file secured_message.cpp.

◆ set_signer_identifier_self()

void vanetza::security::v3::SecuredMessage::set_signer_identifier_self ( )

Definition at line 448 of file secured_message.cpp.

◆ signature()

boost::optional< Signature > vanetza::security::v3::SecuredMessage::signature ( ) const

Definition at line 597 of file secured_message.cpp.

◆ signer_identifier()

SecuredMessage::SignerIdentifier vanetza::security::v3::SecuredMessage::signer_identifier ( ) const

Definition at line 629 of file secured_message.cpp.

◆ signing_payload()

ByteBuffer vanetza::security::v3::SecuredMessage::signing_payload ( ) const

Definition at line 649 of file secured_message.cpp.

◆ size()

std::size_t vanetza::asn1::asn1c_oer_wrapper< asn1::EtsiTs103097Data >::size ( ) const
inlineinherited

Get size of encoded ASN.1 struct

Returns
size in bytes

Definition at line 256 of file asn1c_wrapper.hpp.

◆ swap()

void vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::swap ( asn1c_wrapper_common & other)
inlinenoexceptinherited

Swap ASN.1 wrapper content

Parameters
otherwrapper

Definition at line 147 of file asn1c_wrapper.hpp.

◆ validate() [1/2]

bool vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::validate ( ) const
inlineinherited

Check ASN.1 constraints

Parameters
error(optional) copy of error message
Returns
true if valid

Definition at line 99 of file asn1c_wrapper.hpp.

◆ validate() [2/2]

bool vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::validate ( std::string & error) const
inlineinherited

Check ASN.1 constraints

Parameters
errorError message if any constraint failed
Returns
true if valid

Definition at line 109 of file asn1c_wrapper.hpp.

◆ with_encrypted_data()

SecuredMessage vanetza::security::v3::SecuredMessage::with_encrypted_data ( )
static

Definition at line 140 of file secured_message.cpp.

◆ with_signed_data()

SecuredMessage vanetza::security::v3::SecuredMessage::with_signed_data ( )
static

Definition at line 110 of file secured_message.cpp.

◆ with_signed_data_hash()

SecuredMessage vanetza::security::v3::SecuredMessage::with_signed_data_hash ( )
static

Definition at line 126 of file secured_message.cpp.

Member Data Documentation

◆ m_struct

asn1c_type* vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::m_struct
protectedinherited

Definition at line 154 of file asn1c_wrapper.hpp.

◆ m_type

asn_TYPE_descriptor_t& vanetza::asn1::asn1c_wrapper_common< asn1::EtsiTs103097Data >::m_type
protectedinherited

Definition at line 155 of file asn1c_wrapper.hpp.


The documentation for this struct was generated from the following files: