33 [[nodiscard]]
virtual std::vector<uint8_t>
sign(
34 std::span<const uint8_t> d)
const = 0;
37 const uint8_t* contents,
39 const uint8_t* signature,
40 size_t signature_size) = 0;
43 const std::vector<uint8_t>& contents,
44 const std::vector<uint8_t>& signature)
47 contents.data(), contents.size(), signature.data(), signature.size());
53 const std::optional<std::string>& kid = std::nullopt)
const = 0;
Definition eddsa_key_pair.h:19
virtual Pem private_key_pem() const =0
virtual CurveID get_curve_id() const =0
virtual Pem public_key_pem() const =0
virtual bool verify(const uint8_t *contents, size_t contents_size, const uint8_t *signature, size_t signature_size)=0
virtual ~EdDSAKeyPair()=default
virtual bool verify(const std::vector< uint8_t > &contents, const std::vector< uint8_t > &signature)
Definition eddsa_key_pair.h:42
virtual std::vector< uint8_t > sign(std::span< const uint8_t > d) const =0
virtual JsonWebKeyEdDSAPrivate private_key_jwk_eddsa(const std::optional< std::string > &kid=std::nullopt) const =0
CurveID
Definition curve.h:18
@ CURVE25519
The CURVE25519 curve.
EdDSAKeyPairPtr make_eddsa_key_pair(CurveID curve_id=CurveID::CURVE25519)
Definition eddsa_key_pair.cpp:27
std::shared_ptr< EdDSAPublicKey > EdDSAPublicKeyPtr
Definition eddsa_key_pair.h:56
std::shared_ptr< EdDSAKeyPair > EdDSAKeyPairPtr
Definition eddsa_key_pair.h:57
EdDSAPublicKeyPtr make_eddsa_public_key(const Pem &pem)
Definition eddsa_key_pair.cpp:17