2#include <vanetza/asn1/asn1c_wrapper.hpp>
3#include <vanetza/asn1/security/EtsiTs103097Certificate.h>
4#include <vanetza/common/clock.hpp>
5#include <vanetza/common/its_aid.hpp>
6#include <vanetza/common/position_fix.hpp>
7#include <vanetza/net/packet_variant.hpp>
8#include <vanetza/security/hashed_id.hpp>
9#include <vanetza/security/key_type.hpp>
10#include <vanetza/security/public_key.hpp>
11#include <vanetza/security/signature.hpp>
12#include <vanetza/security/v3/asn1_types.hpp>
13#include <vanetza/security/v3/location_checker.hpp>
14#include <vanetza/security/v3/validity_restriction.hpp>
15#include <boost/optional/optional_fwd.hpp>
37 explicit CertificateView(
const asn1::EtsiTs103097Certificate* cert);
127 ByteBuffer
encode()
const;
130 const asn1::EtsiTs103097Certificate* m_cert =
nullptr;
138 explicit Certificate(
const asn1::EtsiTs103097Certificate&);
140 Certificate(
const Certificate&);
141 Certificate& operator=(
const Certificate&);
143 Certificate(Certificate&&);
144 Certificate& operator=(Certificate&&);
147 ByteBuffer
encode()
const;
149 void add_permission(ItsAid aid,
const ByteBuffer& ssp);
151 void add_cert_permission(asn1::PsidGroupPermissions* group_permission);
153 void set_signature(
const SomeEcdsaSignature& signature);
161boost::optional<HashedId8> calculate_digest(
const asn1::EtsiTs103097Certificate& cert);
168bool is_canonical(
const asn1::EtsiTs103097Certificate& cert);
175boost::optional<Certificate> canonicalize(
const asn1::EtsiTs103097Certificate& cert);
184bool valid_at_timepoint(
const asn1::EtsiTs103097Certificate& cert,
const Clock::time_point& time_point);
193bool valid_for_application(
const asn1::EtsiTs103097Certificate& cert, ItsAid aid);
200boost::optional<PublicKey> get_public_key(
const asn1::EtsiTs103097Certificate& cert);
207KeyType get_verification_key_type(
const asn1::EtsiTs103097Certificate& cert);
214boost::optional<PublicKey> get_public_encryption_key(
const asn1::EtsiTs103097Certificate& cert);
221boost::optional<Signature> get_signature(
const asn1::EtsiTs103097Certificate& cert);
228std::list<ItsAid> get_aids(
const asn1::EtsiTs103097Certificate& cert);
236ByteBuffer get_app_permissions(
const asn1::EtsiTs103097Certificate& cert, ItsAid aid);
238void add_psid_group_permission(asn1::PsidGroupPermissions* group_permission, ItsAid aid,
const ByteBuffer& ssp,
const ByteBuffer& bitmask);
ByteBuffer encode() const
ByteBuffer encode() const
boost::optional< Certificate > canonicalize() const
bool valid_at_timepoint(const Clock::time_point &time_point) const
StartAndEndValidity get_start_and_end_validity() const
bool is_at_certificate() const
bool is_ca_certificate() const
bool issuer_is_self() const
bool valid_for_application(ItsAid aid) const
boost::optional< HashedId8 > calculate_digest() const
bool valid_at_location(const PositionFix &location, const LocationChecker *lc) const
bool has_region_restriction() const
boost::optional< HashedId8 > issuer_digest() const
KeyType get_verification_key_type() const
bool is_canonical() const