Vanetza
Loading...
Searching...
No Matches
backend_null.cpp
1#include <vanetza/common/byte_sequence.hpp>
2#include <vanetza/security/backend_null.hpp>
3#include <vanetza/security/public_key.hpp>
4#include <vanetza/security/signature.hpp>
5
6namespace vanetza
7{
8namespace security
9{
10
12{
13 static const EcdsaSignature fake = fake_signature();
14 return fake;
15}
16
18{
19 static const Signature empty {};
20 return empty;
21}
22
23bool BackendNull::verify_data(const ecdsa256::PublicKey&, const ByteBuffer&, const EcdsaSignature&)
24{
25 // accept everything
26 return true;
27}
28
29bool BackendNull::verify_digest(const PublicKey&, const ByteBuffer&, const Signature&)
30{
31 // accept everything
32 return true;
33}
34
35boost::optional<Uncompressed> BackendNull::decompress_point(const EccPoint& ecc_point)
36{
37 return boost::none;
38}
39
40EcdsaSignature BackendNull::fake_signature() const
41{
42 constexpr std::size_t size = 32;
43 EcdsaSignature signature;
44 X_Coordinate_Only coordinate;
45 coordinate.x = random_byte_sequence(size, 0xdead);
46 signature.R = coordinate;
47 signature.s = random_byte_sequence(size, 0xbeef);
48
49 return signature;
50}
51
52ByteBuffer BackendNull::calculate_hash(HashAlgorithm algo, const ByteBuffer& buffer)
53{
54 ByteBuffer hash;
55 switch (algo) {
56 case HashAlgorithm::SHA256:
57 hash.resize(32);
58 break;
59 case HashAlgorithm::SHA384:
60 hash.resize(48);
61 break;
62 default:
63 break;
64 }
65 return hash;
66}
67
68} // namespace security
69} // namespace vanetza
bool verify_data(const ecdsa256::PublicKey &public_key, const ByteBuffer &data, const EcdsaSignature &sig) override
bool verify_digest(const PublicKey &, const ByteBuffer &digest, const Signature &) override
Signature sign_digest(const PrivateKey &, const ByteBuffer &) override
EcdsaSignature sign_data(const ecdsa256::PrivateKey &private_key, const ByteBuffer &data_buffer) override
ByteBuffer calculate_hash(HashAlgorithm, const ByteBuffer &) override
boost::optional< Uncompressed > decompress_point(const EccPoint &ecc_point) override
EcdsaSignature specified in TS 103 097 v1.2.1, section 4.2.9.
Definition signature.hpp:17
X_Coordinate_Only specified in TS 103 097 v1.2.1 in section 4.2.5.
Definition ecc_point.hpp:18