11#include <botan/bigint.h>
12#include <botan/pk_keys.h>
20class RSA_Private_Data;
41 std::string
algo_name()
const override {
return "RSA"; }
47 std::vector<uint8_t> raw_public_key_bits()
const override;
49 std::vector<uint8_t> public_key_bits()
const override;
54 const BigInt& get_n()
const;
59 const BigInt& get_e()
const;
61 size_t key_length()
const override;
62 size_t estimated_strength()
const override;
64 const BigInt& get_int_field(std::string_view field)
const override;
71 std::shared_ptr<const RSA_Public_Data> public_data()
const;
74 std::string_view params,
75 std::string_view provider)
const override;
77 std::unique_ptr<PK_Ops::KEM_Encryption> create_kem_encryption_op(std::string_view params,
78 std::string_view provider)
const override;
80 std::unique_ptr<PK_Ops::Verification> create_verification_op(std::string_view params,
81 std::string_view provider)
const override;
83 std::unique_ptr<PK_Ops::Verification> create_x509_verification_op(
const AlgorithmIdentifier& alg_id,
84 std::string_view provider)
const override;
91 std::shared_ptr<const RSA_Public_Data>
m_public;
136 std::unique_ptr<Public_Key>
public_key()
const override;
167 std::shared_ptr<const RSA_Private_Data>
private_data()
const;
170 std::string_view params,
171 std::string_view provider)
const override;
174 std::string_view params,
175 std::string_view provider)
const override;
178 std::string_view params,
179 std::string_view provider)
const override;
184 std::shared_ptr<const RSA_Private_Data> m_private;
#define BOTAN_DIAGNOSTIC_POP
#define BOTAN_DIAGNOSTIC_PUSH
#define BOTAN_DIAGNOSTIC_IGNORE_INHERITED_VIA_DOMINANCE
#define BOTAN_PUBLIC_API(maj, min)
const BigInt & get_q() const
const BigInt & get_int_field(std::string_view field) const override
std::shared_ptr< const RSA_Private_Data > private_data() const
std::unique_ptr< PK_Ops::Decryption > create_decryption_op(RandomNumberGenerator &rng, std::string_view params, std::string_view provider) const override
const BigInt & get_c() const
std::unique_ptr< PK_Ops::Signature > create_signature_op(RandomNumberGenerator &rng, std::string_view params, std::string_view provider) const override
RSA_PrivateKey(const AlgorithmIdentifier &alg_id, std::span< const uint8_t > key_bits)
const BigInt & get_p() const
const BigInt & get_d2() const
bool check_key(RandomNumberGenerator &rng, bool) const override
const BigInt & get_d() const
secure_vector< uint8_t > private_key_bits() const override
std::unique_ptr< PK_Ops::KEM_Decryption > create_kem_decryption_op(RandomNumberGenerator &rng, std::string_view params, std::string_view provider) const override
std::unique_ptr< Public_Key > public_key() const override
const BigInt & get_d1() const
void init(BigInt &&n, BigInt &&e)
std::string algo_name() const override
RSA_PublicKey(const AlgorithmIdentifier &alg_id, std::span< const uint8_t > key_bits)
std::shared_ptr< const RSA_Public_Data > m_public
std::vector< T, secure_allocator< T > > secure_vector