Vanetza
 
Loading...
Searching...
No Matches
certificate.hpp
1#pragma once
2#include <vanetza/asn1/asn1c_wrapper.hpp>
3#include <vanetza/asn1/security/EtsiTs103097Certificate.h>
4#include <vanetza/common/its_aid.hpp>
5#include <vanetza/security/hashed_id.hpp>
6#include <vanetza/security/public_key.hpp>
7#include <boost/optional/optional_fwd.hpp>
8
9namespace vanetza
10{
11namespace security
12{
13namespace v3
14{
15
16struct Certificate : public asn1::asn1c_oer_wrapper<EtsiTs103097Certificate_t>
17{
19};
20
21/**
22 * Calculate hash id (digest) of v3 certificate
23 * \param cert certificate
24 * \return hash id if possible
25 */
26boost::optional<HashedId8> calculate_hash(const EtsiTs103097Certificate_t& cert);
27
28/**
29 * Extract the public key out of a certificate
30 * \param cert certificate
31 * \return public key if possible
32 */
33boost::optional<PublicKey> get_public_key(const EtsiTs103097Certificate_t& cert);
34
35/**
36 * Get application permissions (SSP = service specific permissions)
37 * \param cert certificate containing application permissions
38 * \param aid look up permissions for this application identifier
39 * \return SSP bitmap or empty buffer
40 */
41ByteBuffer get_app_permissions(const EtsiTs103097Certificate_t& cert, ItsAid aid);
42
43} // namespace v3
44} // namespace security
45} // namespace vanetza