8#include <openssl/err.h>
9#include <openssl/evp.h>
18 EVP_PKEY*
key =
nullptr;
32 using PublicKey::verify;
33 using PublicKey::verify_hash;
36 const uint8_t* contents,
59 operator EVP_PKEY*()
const
67 const std::optional<std::string>& kid = std::nullopt)
const override;
71 const std::vector<uint8_t>& raw,
int nid);
Definition public_key.h:16
virtual ~PublicKey_OpenSSL()
Definition public_key.cpp:108
virtual CurveID get_curve_id() const override
Definition public_key.cpp:116
virtual Pem public_key_pem() const override
Definition public_key.cpp:219
virtual std::vector< uint8_t > public_key_raw() const override
Definition public_key.cpp:241
virtual std::vector< uint8_t > public_key_der() const override
Definition public_key.cpp:230
virtual bool verify(const uint8_t *contents, size_t contents_size, const uint8_t *sig, size_t sig_size, MDType md_type, HashBytes &bytes) override
Definition public_key.cpp:169
virtual bool verify_hash(const uint8_t *hash, size_t hash_size, const uint8_t *sig, size_t sig_size, MDType md_type) override
Definition public_key.cpp:186
virtual JsonWebKeyECPublic public_key_jwk(const std::optional< std::string > &kid=std::nullopt) const override
Definition public_key.cpp:313
EVP_PKEY * key
Definition public_key.h:18
static std::vector< uint8_t > ec_point_public_from_jwk(const JsonWebKeyECPublic &jwk)
Definition public_key.cpp:67
virtual Coordinates coordinates() const override
Definition public_key.cpp:293
int get_openssl_group_id() const
Definition public_key.cpp:131
PublicKey_OpenSSL(PublicKey_OpenSSL &&key)=default
Definition public_key.h:19
std::vector< uint8_t > HashBytes
Definition hash_bytes.h:10
Unique_PKEY key_from_raw_ec_point(const std::vector< uint8_t > &raw, int nid)
Definition public_key.cpp:259
MDType
Definition md_type.h:10
CurveID
Definition curve.h:18