8#include <botan/pk_keys.h>
9#include <botan/internal/pk_ops.h>
10#include <botan/der_enc.h>
11#include <botan/oids.h>
12#include <botan/hash.h>
19 const std::string& hash_name)
22 const std::string hex_hash =
hex_encode(hash_fn->process(bits, bits_len));
26 for(
size_t i = 0; i != hex_hash.size(); i += 2)
29 fprint.push_back(
':');
31 fprint.push_back(hex_hash[i]);
32 fprint.push_back(hex_hash[i+1]);
40 std::vector<uint8_t> output;
63 const size_t PKCS8_VERSION = 0;
90std::unique_ptr<PK_Ops::Encryption>
93 const std::string& )
const
98std::unique_ptr<PK_Ops::KEM_Encryption>
101 const std::string& )
const
106std::unique_ptr<PK_Ops::Verification>
108 const std::string& )
const
113std::unique_ptr<PK_Ops::Decryption>
116 const std::string& )
const
121std::unique_ptr<PK_Ops::KEM_Decryption>
124 const std::string& )
const
129std::unique_ptr<PK_Ops::Signature>
132 const std::string& )
const
137std::unique_ptr<PK_Ops::Key_Agreement>
140 const std::string& )
const
secure_vector< uint8_t > get_contents()
DER_Encoder & start_sequence()
DER_Encoder & encode(bool b)
static std::unique_ptr< HashFunction > create_or_throw(const std::string &algo_spec, const std::string &provider="")
std::string fingerprint_private(const std::string &alg) const
virtual AlgorithmIdentifier pkcs8_algorithm_identifier() const
virtual std::unique_ptr< PK_Ops::Signature > create_signature_op(RandomNumberGenerator &rng, const std::string ¶ms, const std::string &provider) const
virtual std::unique_ptr< PK_Ops::Key_Agreement > create_key_agreement_op(RandomNumberGenerator &rng, const std::string ¶ms, const std::string &provider) const
secure_vector< uint8_t > private_key_info() const
virtual std::unique_ptr< PK_Ops::Decryption > create_decryption_op(RandomNumberGenerator &rng, const std::string ¶ms, const std::string &provider) const
virtual std::unique_ptr< PK_Ops::KEM_Decryption > create_kem_decryption_op(RandomNumberGenerator &rng, const std::string ¶ms, const std::string &provider) const
virtual secure_vector< uint8_t > private_key_bits() const =0
virtual OID get_oid() const
virtual std::unique_ptr< PK_Ops::Encryption > create_encryption_op(RandomNumberGenerator &rng, const std::string ¶ms, const std::string &provider) const
virtual AlgorithmIdentifier algorithm_identifier() const =0
virtual std::vector< uint8_t > public_key_bits() const =0
std::string fingerprint_public(const std::string &alg="SHA-256") const
virtual std::unique_ptr< PK_Ops::KEM_Encryption > create_kem_encryption_op(RandomNumberGenerator &rng, const std::string ¶ms, const std::string &provider) const
std::vector< uint8_t > subject_public_key() const
virtual std::string algo_name() const =0
virtual std::unique_ptr< PK_Ops::Verification > create_verification_op(const std::string ¶ms, const std::string &provider) const
BOTAN_UNSTABLE_API OID str2oid_or_empty(const std::string &name)
void hex_encode(char output[], const uint8_t input[], size_t input_length, bool uppercase)
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
AlgorithmIdentifier hash_algo