Vanetza
Loading...
Searching...
No Matches
certificate_provider.hpp
1#pragma once
2#include <vanetza/security/private_key.hpp>
3#include <vanetza/security/v3/certificate.hpp>
4#include <vanetza/security/v3/certificate_cache.hpp>
5
6namespace vanetza
7{
8namespace security
9{
10namespace v3
11{
12
14{
15public:
16 /**
17 * Get own certificate to use for signing
18 * \return own certificate
19 */
20 virtual const Certificate& own_certificate() = 0;
21
22 /**
23 * Get private key associated with own certificate
24 * \return private key
25 */
26 virtual const PrivateKey& own_private_key() = 0;
27
28 /**
29 * Get certificate cache
30 * \return certificate cache
31 */
32 virtual CertificateCache& cache() = 0;
33 virtual const CertificateCache& cache() const = 0;
34
35 virtual ~CertificateProvider() = default;
36};
37
39{
40public:
41 const CertificateCache& cache() const override { return m_cache; }
42 CertificateCache& cache() override { return m_cache; }
43
44private:
45 CertificateCache m_cache;
46};
47
48} // namespace v3
49} // namespace security
50} // namespace vanetza
virtual const PositionFix & position_fix()=0
virtual Clock::time_point now() const =0
static CertificateValidity valid()
Create CertificateValidity signalling a valid certificate This method is equivalent to default constr...
CertificateInvalidReason reason() const
Get reason for certificate invalidity This call is only safe if reason is available,...
void insert(const Certificate &certificate)
std::list< Certificate > lookup(const HashedId8 &id, SubjectType type)
virtual const ecdsa256::PrivateKey & own_private_key()=0
virtual const Certificate & own_certificate()=0
virtual std::list< Certificate > own_chain()=0
virtual CertificateValidity check_certificate(const Certificate &certificate)=0
void request_unrecognized_certificate(HashedId8 id) override
std::list< HeaderField > prepare_header(const SignRequest &request, CertificateProvider &certificate_provider) override
IntX specified in TS 103 097 v1.2.1, section 4.2.1.
Definition int_x.hpp:21
virtual void request_unrecognized_certificate(HashedId8 id)=0
virtual std::list< HeaderField > prepare_header(const SignRequest &req, CertificateProvider &certprvd)=0
bool is_known(const HashedId8 &digest) const
bool announce(const HashedId8 &digest)
const Certificate * lookup(const HashedId8 &digest) const
virtual CertificateCache & cache()=0
virtual const PrivateKey & own_private_key()=0
virtual const Certificate & own_certificate()=0
virtual Verdict valid_for_signing(const CertificateView &certificate, ItsAid app)=0
virtual void discard_p2p_request(HashedId3 id)=0
virtual void enqueue_p2p_request(HashedId3 id)=0
virtual void request_unrecognized_certificate(HashedId8 id)=0
described in TS 103 097 v1.2.1 (2015-06), section 6.1
SecuredMessage as specified in TS 103 097 v1.2.1, section 5.1.
const TrailerField * trailer_field(TrailerFieldType type) const