Vanetza
 
Loading...
Searching...
No Matches
sign_service.hpp
1#ifndef AD03EF9D_246E_48D3_83F0_9983ADF0C454
2#define AD03EF9D_246E_48D3_83F0_9983ADF0C454
3
4#include <vanetza/security/sign_service.hpp>
5#include <vanetza/security/v2/certificate_provider.hpp>
6#include <vanetza/security/v2/secured_message.hpp>
7#include <vanetza/security/v2/sign_header_policy.hpp>
8
9namespace vanetza
10{
11namespace security
12{
13
14// forward declarations
15class Backend;
16
17namespace v2
18{
19
20// forward declarations
21class CertificateProvider;
22
23/**
24 * SignService immediately signing the message using given
25 */
27{
28public:
30 SignConfirm sign(SignRequest&&) override;
31
32private:
33 CertificateProvider& m_certificates;
34 Backend& m_backend;
35 SignHeaderPolicy& m_policy;
36};
37
38/**
39 * SignService deferring actually signature calculation using EcdsaSignatureFuture
40 */
42{
43public:
45 SignConfirm sign(SignRequest&&) override;
46
47private:
48 CertificateProvider& m_certificates;
49 Backend& m_backend;
50 SignHeaderPolicy& m_policy;
51};
52
53/**
54 * SignService without real cryptography but dummy signature
55 */
57{
58public:
59 /**
60 * \param rt runtime for appropriate generation time
61 * \param si signer info attached to header fields of secured message
62 */
63 DummySignService(const Runtime& rt, const SignerInfo& si);
64 SignConfirm sign(SignRequest&&) override;
65
66private:
67 const Runtime& m_runtime;
68 SignerInfo m_signer_info;
69};
70
71} // namespace v2
72} // namespace security
73} // namespace vanetza
74
75#endif /* AD03EF9D_246E_48D3_83F0_9983ADF0C454 */