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;
125 const BigInt& d = BigInt::zero(),
126 const BigInt& n = BigInt::zero());
136 std::unique_ptr<Public_Key> public_key()
const override;
140 const BigInt& get_int_field(std::string_view field)
const override;
146 const BigInt& get_p()
const;
152 const BigInt& get_q()
const;
158 const BigInt& get_d()
const;
160 const BigInt& get_c()
const;
161 const BigInt& get_d1()
const;
162 const BigInt& get_d2()
const;
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;