Vanetza
Loading...
Searching...
No Matches
certificate_validity.hpp
1#ifndef BC8469A6_CC39_4826_A95E_DE639D68863B
2#define BC8469A6_CC39_4826_A95E_DE639D68863B
3
4#include <boost/optional/optional.hpp>
5
6namespace vanetza
7{
8namespace security
9{
10
11enum class CertificateInvalidReason
12{
13 Broken_Time_Period,
14 Off_Time_Period,
15 Unknown_Signer,
16 Missing_Signature,
17 Missing_Public_Key,
18 Invalid_Signer,
19 Invalid_Name,
20 Excessive_Chain_Length,
21 Off_Region,
22 Inconsistent_With_Signer,
23 Insufficient_ITS_AID,
24 Missing_Subject_Assurance,
25};
26
28{
29public:
30 CertificateValidity() = default;
31
32 /**
33 * Create CertificateValidity signalling an invalid certificate
34 * \param reason Reason for invalidity
35 */
36 CertificateValidity(CertificateInvalidReason reason) : m_reason(reason) {}
37
38 /**
39 * \brief Create CertificateValidity signalling a valid certificate
40 * This method is equivalent to default construction but should be more expressive.
41 * \return validity
42 */
44
45 /**
46 * Check if status corresponds to a valid certificate
47 * \return true if certificate is valid
48 */
49 operator bool() const { return !m_reason; }
50
51 /**
52 * \brief Get reason for certificate invalidity
53 * This call is only safe if reason is available, i.e. check validity before!
54 *
55 * \return reason
56 */
57 CertificateInvalidReason reason() const { return *m_reason; }
58
59private:
60 boost::optional<CertificateInvalidReason> m_reason;
61};
62
63} // namespace security
64} // namespace vanetza
65
66#endif /* BC8469A6_CC39_4826_A95E_DE639D68863B */
ChunckPacket is a packet consisting of several memory chunks.
ByteBufferConvertible & operator[](OsiLayer ol)
ChunkPacket & merge(ChunkPacket &packet, OsiLayer from, OsiLayer to)
std::size_t size() const
const ByteBufferConvertible & layer(OsiLayer ol) const
const ByteBufferConvertible & operator[](OsiLayer ol) const
ByteBufferConvertible & layer(OsiLayer ol)
std::size_t size(OsiLayer from, OsiLayer to) const
ChunkPacket extract(OsiLayer from, OsiLayer to)
std::size_t size(OsiLayer from, OsiLayer to) const
buffer_const_range operator[](OsiLayer layer) const
std::size_t size() const
void set_boundary(OsiLayer, unsigned bytes)
const ByteBuffer & buffer() const
CohesivePacket(const ByteBuffer &buffer, OsiLayer layer)
void trim(OsiLayer from, unsigned bytes)
std::size_t size(OsiLayer single_layer) const
value_type operator[](size_type) const
Definition byte_view.cpp:48
byte_view_range(ByteBuffer &&)
Definition byte_view.cpp:37
byte_view_range(const ByteBuffer::const_iterator &, const ByteBuffer::const_iterator &)
Definition byte_view.cpp:27
ByteBuffer::const_pointer data() const
Definition byte_view.cpp:42
void encode(units::Duration)
Definition lifetime.cpp:45
units::Duration decode() const
Definition lifetime.cpp:59
bool after(const Timestamp &other) const
Definition timestamp.cpp:76
bool before(const Timestamp &other) const
Definition timestamp.cpp:71
static CertificateValidity valid()
Create CertificateValidity signalling a valid certificate This method is equivalent to default constr...
CertificateValidity(CertificateInvalidReason reason)
CertificateInvalidReason reason() const
Get reason for certificate invalidity This call is only safe if reason is available,...
static DecapConfirm from(VerifyConfirm &&verify_confirm, const SecuredMessageView &msg_view)
Input data for decapsulating a secured message.