ITS
SecurityProfile_CAM.cpp
Go to the documentation of this file.
2 
4 {
5  //TODO: Manage other cases.
6  SecuredHeader_t header;
7 
8  header.protocol_version = 2;
9  header.type = PayloadType_signed;
10 
11  header.header_fields.list.array = (HeaderField_t**)calloc(1, sizeof *header.header_fields.list.array);
12  header.header_fields.list.count = 0;
13  header.header_fields.list.free = 0;
14  header.header_fields.list.size = 0;
15 
16  HeaderField_t *field = (HeaderField_t*)calloc(1, sizeof *field);
17  SignerInfo_t signerInfo;
21  signerInfo.signer_info.choice.certificate_digest_with_sha256.digest.buf = (uint8_t*)calloc(8, 1);
27  header.header_fields.list.array[0] = (HeaderField_t*)calloc(1, sizeof *header.header_fields.list.array[0]);
28  asn_sequence_add(&header.header_fields, field);
29 
30  field = (HeaderField_t*)calloc(1, sizeof *field);
31  Time64_t time;
32  time.size = 8;
33  time.buf = (uint8_t*)calloc(8, 1);
34  format(time.buf, m_gps->timestamp() * 1000, 8);
38  header.header_fields.list.array[1] = (HeaderField_t*)calloc(1, sizeof *header.header_fields.list.array[1]);
39  asn_sequence_add(&header.header_fields, field);
40 
41  field = (HeaderField_t*)calloc(1, sizeof *field);
43  header.header_fields.list.array[2] = (HeaderField_t*)calloc(1, sizeof *header.header_fields.list.array[2]);
44  asn_sequence_add(&header.header_fields, field);
45 
46  return encode_SecuredHeader(header);
47 }
union HeaderField::header_field::HeaderField__header_field_u choice
HeaderFieldType_t type
Definition: HeaderField.h:53
struct SignerInfo * signer_info_certificate
Definition: Certificate.h:33
union SignerInfo::signer_info::SignerInfo__signer_info_u choice
SignerInfoType_t type
Definition: SignerInfo.h:43
Security profile for CAM purpose.
signer_info_PR present
Definition: SignerInfo.h:45
struct HeaderField::header_field::HeaderField__header_field_u::generation_time generation_time
long SignerInfoType_t
quint64 timestamp()
timestamp Timestamp getter.
QByteArray encode_SecuredHeader(SecuredHeader_t header)
encode_SecuredHeader Encode a SecuredHeader.
struct SecuredHeader::header_fields header_fields
struct SignerInfo::signer_info signer_info
#define asn_sequence_add
struct SignerInfo::signer_info::SignerInfo__signer_info_u::certificate_digest_with_sha256 certificate_digest_with_sha256
uint8_t * buf
Definition: OCTET_STRING.h:15
static QByteArray secureHeader(SignerInfoType_t m_type, Certificate_t m_certificate, FakeGPSProvider *m_gps)
secureHeader Generate the secured header.
struct HeaderField::header_field::HeaderField__header_field_u::its_aid_header_field its_aid_header_field
struct HeaderField::header_field header_field
struct HeaderField::header_field::HeaderField__header_field_u::signer_info_header_field signer_info_header_field
header_field_PR present
Definition: HeaderField.h:55
void format(unsigned char *msg, unsigned long v, int l)
format Format a number in byte array.
Definition: api.cpp:35
PayloadType_t type
Definition: SecuredHeader.h:38
UINT8_t protocol_version
Definition: SecuredHeader.h:30