CCF
Loading...
Searching...
No Matches
eddsa_public_key.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
8
9#include <optional>
10#include <string>
11#include <vector>
12
13namespace ccf::crypto
14{
16 {
17 protected:
18 EVP_PKEY* key = nullptr;
19
20 public:
22 EdDSAPublicKey_OpenSSL(const Pem& pem);
24 ~EdDSAPublicKey_OpenSSL() override;
25
26 [[nodiscard]] Pem public_key_pem() const override;
27
28 bool verify(
29 const uint8_t* contents,
30 size_t contents_size,
31 const uint8_t* sig,
32 size_t signature_size) override;
33
34 static int get_openssl_group_id(CurveID gid);
35
36 [[nodiscard]] CurveID get_curve_id() const override;
37
39 const std::optional<std::string>& kid = std::nullopt) const override;
40 };
41}
Definition eddsa_public_key.h:16
CurveID get_curve_id() const override
Definition eddsa_public_key.cpp:105
static int get_openssl_group_id(CurveID gid)
Definition eddsa_public_key.cpp:90
JsonWebKeyEdDSAPublic public_key_jwk_eddsa(const std::optional< std::string > &kid=std::nullopt) const override
Definition eddsa_public_key.cpp:120
bool verify(const uint8_t *contents, size_t contents_size, const uint8_t *sig, size_t signature_size) override
Definition eddsa_public_key.cpp:75
EVP_PKEY * key
Definition eddsa_public_key.h:18
~EdDSAPublicKey_OpenSSL() override
Definition eddsa_public_key.cpp:56
Pem public_key_pem() const override
Definition eddsa_public_key.cpp:64
Definition eddsa_public_key.h:16
Definition pem.h:18
Definition base64.h:10
CurveID
Definition curve.h:18