8#ifndef BOTAN_PK_KEYS_H_
9#define BOTAN_PK_KEYS_H_
11#include <botan/asn1_obj.h>
12#include <botan/pk_ops_fwd.h>
13#include <botan/secmem.h>
23class RandomNumberGenerator;
84 virtual OID object_identifier()
const;
101 virtual const BigInt& get_int_field(std::string_view field)
const;
186 std::vector<uint8_t> subject_public_key()
const;
191 std::string fingerprint_public(std::string_view alg =
"SHA-256")
const;
208 return _signature_element_size_for_DER_encoding() ? 2 : 1;
221 return _signature_element_size_for_DER_encoding().value_or(0);
228 return _default_x509_signature_format();
244 std::string_view params,
245 std::string_view provider)
const;
256 virtual std::unique_ptr<PK_Ops::KEM_Encryption> create_kem_encryption_op(std::string_view params,
257 std::string_view provider)
const;
267 virtual std::unique_ptr<PK_Ops::Verification> create_verification_op(std::string_view params,
268 std::string_view provider)
const;
282 virtual std::unique_ptr<PK_Ops::Verification> create_x509_verification_op(
342 std::string fingerprint_private(std::string_view alg)
const;
358 std::string_view params,
359 std::string_view provider)
const;
374 std::string_view params,
375 std::string_view provider)
const;
390 std::string_view params,
391 std::string_view provider)
const;
406 std::string_view params,
407 std::string_view provider)
const;
#define BOTAN_PUBLIC_API(maj, min)
#define BOTAN_DEPRECATED(msg)
virtual std::string algo_name() const =0
virtual ~Asymmetric_Key()=default
virtual bool check_key(RandomNumberGenerator &rng, bool strong) const =0
virtual bool supports_operation(PublicKeyOperation op) const =0
virtual std::unique_ptr< Private_Key > generate_another(RandomNumberGenerator &rng) const =0
virtual std::optional< size_t > _signature_element_size_for_DER_encoding() const
virtual size_t estimated_strength() const =0
virtual std::vector< uint8_t > public_value() const =0
virtual std::unique_ptr< Public_Key > public_key() const =0
virtual AlgorithmIdentifier pkcs8_algorithm_identifier() const
virtual std::optional< uint64_t > remaining_operations() const
Retrieves the number of remaining operations if this is a stateful private key.
virtual bool stateful_operation() const
virtual secure_vector< uint8_t > private_key_bits() const =0
virtual AlgorithmIdentifier algorithm_identifier() const =0
virtual std::vector< uint8_t > public_key_bits() const =0
virtual std::vector< uint8_t > raw_public_key_bits() const =0
virtual size_t key_length() const =0
std::string create_hex_fingerprint(const uint8_t bits[], size_t bits_len, std::string_view hash_name)
std::vector< T, secure_allocator< T > > secure_vector