Vanetza
Loading...
Searching...
No Matches
verify_service.hpp
1
#ifndef VERIFY_SERVICE_HPP_BR4ISDBH
2
#define VERIFY_SERVICE_HPP_BR4ISDBH
3
4
#include <boost/optional.hpp>
5
#include <vanetza/common/its_aid.hpp>
6
#include <vanetza/security/certificate_validity.hpp>
7
#include <vanetza/security/hashed_id.hpp>
8
#include <vanetza/security/secured_message.hpp>
9
#include <functional>
10
11
namespace
vanetza
12
{
13
namespace
security
14
{
15
16
/**
17
* SN-VERIFY.confirm report codes
18
*
19
* "Configuration_Problem" is not found in TS 103 723-8 V1.1.1 but indicates a
20
* problem with the verification subsystem itself, e.g. a programming error.
21
*
22
* \see TS 102 723-8 v1.1.1 table 5
23
*/
24
enum class
VerificationReport
25
{
26
Success,
27
False_Signature,
28
Invalid_Certificate,
29
Revoked_Certificate,
30
Inconsistent_Chain,
31
Invalid_Timestamp,
32
Duplicate_Message,
33
Invalid_Mobility_Data,
34
Unsigned_Message,
35
Signer_Certificate_Not_Found,
36
Unsupported_Signer_Identifier_Type,
37
Incompatible_Protocol,
38
Configuration_Problem,
39
};
40
41
// mandatory parameters of SN-VERIFY.request (TS 102 723-8 V1.1.1)
42
struct
VerifyRequest
43
{
44
VerifyRequest(
SecuredMessageView
msg) : secured_message(msg) {}
45
SecuredMessageView
secured_message;
/*< contains security header and payload */
46
};
47
48
// parameters of SN-VERIFY.confirm (TS 102 723-8 V1.1.1)
49
struct
VerifyConfirm
50
{
51
VerificationReport report;
// mandatory
52
ItsAid its_aid;
// mandatory
53
ByteBuffer permissions;
// mandatory
54
CertificateValidity
certificate_validity;
// non-standard extension
55
boost::optional<HashedId8> certificate_id;
// optional
56
};
57
58
/**
59
* Equivalent of SN-VERIFY service in TS 102 723-8 V1.1.1
60
*/
61
class
VerifyService
62
{
63
public
:
64
virtual
~VerifyService
() =
default
;
65
virtual
VerifyConfirm
verify(
const
VerifyRequest
&) = 0;
66
};
67
68
69
/**
70
* Get insecure dummy verify service without any checks
71
*/
72
class
DummyVerifyService
:
public
VerifyService
73
{
74
public
:
75
/**
76
* \param report predefined confirm report result
77
* \param validity predefined certificate validity result
78
*/
79
DummyVerifyService
(VerificationReport report,
CertificateValidity
validity);
80
VerifyConfirm
verify(
const
VerifyRequest
&)
override
;
81
82
private
:
83
VerificationReport m_report;
84
CertificateValidity
m_validity;
85
};
86
87
}
// namespace security
88
}
// namespace vanetza
89
90
#endif
/* VERIFY_SERVICE_HPP_BR4ISDBH */
vanetza::security::CertificateValidity
Definition
certificate_validity.hpp:28
vanetza::security::DummyVerifyService::DummyVerifyService
DummyVerifyService(VerificationReport report, CertificateValidity validity)
Definition
verify_service.cpp:7
vanetza::security::SecuredMessageView
Definition
secured_message.hpp:19
vanetza::security::VerifyService
Definition
verify_service.hpp:62
vanetza::security::VerifyConfirm
Definition
verify_service.hpp:50
vanetza::security::VerifyRequest
Definition
verify_service.hpp:43
vanetza
security
verify_service.hpp
Generated on
for Vanetza by
1.14.0