8 #ifndef BOTAN_PK_KEYS_H_ 9 #define BOTAN_PK_KEYS_H_ 11 #include <botan/secmem.h> 12 #include <botan/asn1_obj.h> 13 #include <botan/pk_ops_fwd.h> 18 class RandomNumberGenerator;
40 virtual std::string algo_name()
const = 0;
51 virtual size_t estimated_strength()
const = 0;
59 virtual size_t key_length()
const = 0;
65 virtual OID get_oid()
const;
75 bool strong)
const = 0;
86 virtual std::vector<uint8_t> public_key_bits()
const = 0;
91 std::vector<uint8_t> subject_public_key()
const;
96 std::string fingerprint_public(
const std::string& alg =
"SHA-256")
const;
142 virtual std::unique_ptr<PK_Ops::Encryption>
144 const std::string& params,
145 const std::string& provider)
const;
159 virtual std::unique_ptr<PK_Ops::KEM_Encryption>
161 const std::string& params,
162 const std::string& provider)
const;
172 virtual std::unique_ptr<PK_Ops::Verification>
173 create_verification_op(
const std::string& params,
174 const std::string& provider)
const;
205 {
return algorithm_identifier(); }
212 std::string fingerprint_private(
const std::string& alg)
const;
214 BOTAN_DEPRECATED(
"Use fingerprint_private or fingerprint_public")
215 inline
std::
string fingerprint(const
std::
string& alg)
const 217 return fingerprint_private(alg);
233 virtual std::unique_ptr<PK_Ops::Decryption>
235 const std::string& params,
236 const std::string& provider)
const;
250 virtual std::unique_ptr<PK_Ops::KEM_Decryption>
252 const std::string& params,
253 const std::string& provider)
const;
267 virtual std::unique_ptr<PK_Ops::Signature>
269 const std::string& params,
270 const std::string& provider)
const;
284 virtual std::unique_ptr<PK_Ops::Key_Agreement>
286 const std::string& params,
287 const std::string& provider)
const;
299 virtual std::vector<uint8_t> public_value()
const = 0;
317 const
std::
string& hash_name);
319 template<typename Alloc>
321 const
std::
string& hash_name)
#define BOTAN_PUBLIC_API(maj, min)
Private_Key PKCS8_PrivateKey
Public_Key X509_PublicKey
PK_Key_Agreement_Key PK_KA_Key
virtual Signature_Format default_x509_signature_format() const
virtual size_t message_part_size() const
std::string create_hex_fingerprint(const uint8_t bits[], size_t bits_len, const std::string &hash_name)
std::vector< T, secure_allocator< T > > secure_vector
virtual bool stateful_operation() const
virtual AlgorithmIdentifier pkcs8_algorithm_identifier() const
virtual size_t message_parts() const