Vanetza
Loading...
Searching...
No Matches
geometry.hpp
1#pragma once
2#include <vanetza/security/v3/asn1_types.hpp>
3
4namespace vanetza
5{
6
7// forward declaration
8struct PositionFix;
9
10namespace security
11{
12namespace v3
13{
14
15/**
16 * Check if a TwoDLocation is valid
17 *
18 * \param location TwoDLocation to be checked
19 * \return true if latitude and longitude are within valid range
20 */
21bool is_valid(const asn1::TwoDLocation& location);
22
23/**
24 * Check if position is inside a circular region
25 *
26 * \param pos position to be checked
27 * \param region circular region
28 * \return true if position is inside region
29 */
30bool is_inside(const PositionFix& pos, const asn1::CircularRegion& region);
31
32/**
33 * Check if position is inside at least one of the given regions
34 *
35 * \param pos position to be checked
36 * \param regions sequence of rectangular regions
37 * \return true if position is inside at least one region
38 */
39bool is_inside(const PositionFix& pos, const asn1::SequenceOfRectangularRegion& region);
40
41/**
42 * Check if position is inside a rectangular region
43 *
44 * \param pos position to be checked
45 * \param region rectangular region
46 * \return true if position is inside region
47 */
48bool is_inside(const PositionFix& pos, const asn1::RectangularRegion& region);
49
50/**
51 * \brief Check if a location is inside a polygonal region.
52 *
53 * \param location The location to check.
54 * \param region The polygonal region to check against.
55 * \return true if the location is inside the region, false otherwise.
56 */
57bool is_inside(const PositionFix& location, const asn1::PolygonalRegion& region);
58bool is_inside(const asn1::TwoDLocation* location, const asn1::PolygonalRegion* region);
59
60} // namespace v3
61} // namespace security
62} // namespace vanetza
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_allowed_to_issue(ItsAid aid) 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 region_is_within(const CertificateView &issuer) const
boost::optional< std::uint8_t > assurance_level() const
boost::optional< HashedId8 > issuer_digest() const
EcdsaSignature specified in TS 103 097 v1.2.1, section 4.2.9.
Definition signature.hpp:17
void add_cert_issue_permission(asn1::PsidGroupPermissions *group_permission)
add cert issuing permission
void add_app_permission(ItsAid aid, const ByteBuffer &ssp)
add application permissions as bitmap