1#ifndef BACKEND_HPP_ZMRDTY2O
2#define BACKEND_HPP_ZMRDTY2O
4#include <vanetza/common/byte_buffer.hpp>
5#include <vanetza/common/factory.hpp>
6#include <vanetza/security/ecdsa256.hpp>
7#include <vanetza/security/ecdsa_signature.hpp>
8#include <vanetza/security/public_key.hpp>
9#include <vanetza/security/signature.hpp>
10#include <boost/optional/optional.hpp>
62 virtual ByteBuffer calculate_hash(KeyType,
const ByteBuffer&) = 0;
86std::unique_ptr<Backend> create_backend(
const std::string& name,
const Factory<Backend>& = builtin_backends());
virtual boost::optional< Uncompressed > decompress_point(const EccPoint &ecc_point)=0
decompress a possibly compressed elliptic curve point
virtual EcdsaSignature sign_data(const ecdsa256::PrivateKey &private_key, const ByteBuffer &data)=0
calculate signature for given data and private key
virtual bool verify_data(const ecdsa256::PublicKey &public_key, const ByteBuffer &data, const EcdsaSignature &sig)=0
try to verify data using public key and signature
virtual bool verify_digest(const PublicKey &public_key, const ByteBuffer &digest, const Signature &sig)=0
try to verify digest using public key and signature
EcdsaSignature specified in TS 103 097 v1.2.1, section 4.2.9.