1#include <vanetza/security/ecc_point.hpp>
2#include <boost/variant/apply_visitor.hpp>
3#include <boost/variant/static_visitor.hpp>
10class EccPointVisitor :
public boost::static_visitor<ByteBuffer>
14 ByteBuffer operator()(
const T& point)
20ByteBuffer convert_for_signing(
const EccPoint& ecc_point)
22 EccPointVisitor visit;
23 return boost::apply_visitor(visit, ecc_point);
26class EccPointLengthVisitor :
public boost::static_visitor<std::size_t>
29 std::size_t operator()(
const X_Coordinate_Only& x_only)
const
31 return x_only.x.size();
34 std::size_t operator()(
const Compressed_Lsb_Y_0& y0)
const
39 std::size_t operator()(
const Compressed_Lsb_Y_1& y1)
const
44 std::size_t operator()(
const Uncompressed& unc)
const
46 return unc.x.size() + unc.y.size();
50std::size_t get_length(
const EccPoint& point)
52 EccPointLengthVisitor visitor;
53 return boost::apply_visitor(visitor, point);