CCF
Loading...
Searching...
No Matches
rsa_key_pair.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 public:
19 size_t public_key_size = default_public_key_size,
20 size_t public_exponent = default_public_exponent);
21 RSAKeyPair_OpenSSL(EVP_PKEY* k);
23 RSAKeyPair_OpenSSL(const Pem& pem);
25 virtual ~RSAKeyPair_OpenSSL() = default;
26
27 virtual size_t key_size() const override;
28
29 virtual std::vector<uint8_t> rsa_oaep_unwrap(
30 const std::vector<uint8_t>& input,
31 const std::optional<std::vector<std::uint8_t>>& label =
32 std::nullopt) override;
33
34 virtual Pem private_key_pem() const override;
35 virtual Pem public_key_pem() const override;
36 virtual std::vector<uint8_t> public_key_der() const override;
37
38 virtual std::vector<uint8_t> sign(
39 std::span<const uint8_t> d,
40 MDType md_type = MDType::NONE,
41 size_t salt_length = 0) const override;
42
43 virtual bool verify(
44 const uint8_t* contents,
45 size_t contents_size,
46 const uint8_t* signature,
47 size_t signature_size,
48 MDType md_type = MDType::NONE,
49 size_t salt_length = 0) override;
50
52 const std::optional<std::string>& kid = std::nullopt) const override;
53 };
54}
Definition pem.h:18
Definition rsa_key_pair.h:16
virtual Pem private_key_pem() const override
Definition rsa_key_pair.cpp:169
RSAKeyPair_OpenSSL(const RSAKeyPair &)=delete
virtual JsonWebKeyRSAPrivate private_key_jwk_rsa(const std::optional< std::string > &kid=std::nullopt) const override
Definition rsa_key_pair.cpp:221
virtual bool verify(const uint8_t *contents, size_t contents_size, const uint8_t *signature, size_t signature_size, MDType md_type=MDType::NONE, size_t salt_length=0) override
Definition rsa_key_pair.cpp:209
virtual std::vector< uint8_t > sign(std::span< const uint8_t > d, MDType md_type=MDType::NONE, size_t salt_length=0) const override
Definition rsa_key_pair.cpp:191
virtual Pem public_key_pem() const override
Definition rsa_key_pair.cpp:181
virtual std::vector< uint8_t > public_key_der() const override
Definition rsa_key_pair.cpp:186
virtual std::vector< uint8_t > rsa_oaep_unwrap(const std::vector< uint8_t > &input, const std::optional< std::vector< std::uint8_t > > &label=std::nullopt) override
Definition rsa_key_pair.cpp:124
virtual size_t key_size() const override
Definition rsa_key_pair.cpp:119
virtual ~RSAKeyPair_OpenSSL()=default
Definition rsa_key_pair.h:18
static constexpr size_t default_public_key_size
Definition rsa_key_pair.h:20
static constexpr size_t default_public_exponent
Definition rsa_key_pair.h:21
Definition rsa_public_key.h:17
Definition base64.h:10
MDType
Definition md_type.h:10