Vanetza
 
Loading...
Searching...
No Matches
null_certificate_provider.cpp
1#include <vanetza/security/v2/null_certificate_provider.hpp>
2
3namespace vanetza
4{
5namespace security
6{
7namespace v2
8{
9
10VerificationKey create_null_verification_key()
11{
12 Uncompressed coordinates;
13 coordinates.x.resize(32);
14 coordinates.y.resize(32);
15 EccPoint ecc_point = coordinates;
16 ecdsa_nistp256_with_sha256 ecdsa;
17 ecdsa.public_key = ecc_point;
18 VerificationKey verification_key;
19 verification_key.key = ecdsa;
20 return verification_key;
21}
22
23EcdsaSignature create_null_signature()
24{
25 EcdsaSignature signature;
26 X_Coordinate_Only coordinate;
27 coordinate.x.resize(32);
28 signature.R = std::move(coordinate);
29 signature.s.resize(32);
30 return signature;
31}
32
33Certificate create_null_certificate()
34{
35 Certificate cert;
36 cert.signer_info = HashedId8 {};
37 cert.subject_info.subject_type = SubjectType::Authorization_Ticket;
38 cert.subject_attributes.push_back(SubjectAssurance(0x00));
39 cert.subject_attributes.push_back(create_null_verification_key());
40 cert.validity_restriction.push_back(StartAndEndValidity {});
41 cert.signature = create_null_signature();
42 return cert;
43}
44
45NullCertificateProvider::NullCertificateProvider() { }
46
48{
49 return null_certificate();
50}
51
52std::list<Certificate> NullCertificateProvider::own_chain()
53{
54 return std::list<Certificate> {};
55}
56
58{
59 static const ecdsa256::PrivateKey null_key {};
60 return null_key;
61}
62
64{
65 static const Certificate null_certificate = create_null_certificate();
66 return null_certificate;
67}
68
69} // namespace v2
70} // namespace security
71} // namespace vanetza
const ecdsa256::PrivateKey & own_private_key() override
described in TS 103 097 v1.2.1 (2015-06), section 6.1
Definition: certificate.hpp:28