7#ifndef BOTAN_PK_OPERATIONS_H_
8#define BOTAN_PK_OPERATIONS_H_
21#include <botan/pk_keys.h>
22#include <botan/secmem.h>
26class RandomNumberGenerator;
57 const uint8_t ciphertext[],
58 size_t ciphertext_len) = 0;
76 virtual void update(
const uint8_t msg[],
size_t msg_len) = 0;
102 virtual void update(
const uint8_t msg[],
size_t msg_len) = 0;
137 const uint8_t other_key[],
size_t other_key_len,
138 const uint8_t salt[],
size_t salt_len) = 0;
153 size_t desired_shared_key_len,
155 const uint8_t salt[],
156 size_t salt_len) = 0;
170 size_t desired_shared_key_len,
171 const uint8_t salt[],
172 size_t salt_len) = 0;
virtual secure_vector< uint8_t > decrypt(uint8_t &valid_mask, const uint8_t ciphertext[], size_t ciphertext_len)=0
virtual ~Decryption()=default
virtual size_t plaintext_length(size_t ctext_len) const =0
virtual size_t ciphertext_length(size_t ptext_len) const =0
virtual ~Encryption()=default
virtual secure_vector< uint8_t > encrypt(const uint8_t msg[], size_t msg_len, RandomNumberGenerator &rng)=0
virtual size_t max_input_bits() const =0
virtual secure_vector< uint8_t > kem_decrypt(const uint8_t encap_key[], size_t len, size_t desired_shared_key_len, const uint8_t salt[], size_t salt_len)=0
virtual ~KEM_Decryption()=default
virtual size_t shared_key_length(size_t desired_shared_key_len) const =0
virtual size_t encapsulated_key_length() const =0
virtual ~KEM_Encryption()=default
virtual size_t shared_key_length(size_t desired_shared_key_len) const =0
virtual void kem_encrypt(secure_vector< uint8_t > &out_encapsulated_key, secure_vector< uint8_t > &out_shared_key, size_t desired_shared_key_len, RandomNumberGenerator &rng, const uint8_t salt[], size_t salt_len)=0
virtual secure_vector< uint8_t > agree(size_t key_len, const uint8_t other_key[], size_t other_key_len, const uint8_t salt[], size_t salt_len)=0
virtual size_t agreed_value_size() const =0
virtual ~Key_Agreement()=default
virtual AlgorithmIdentifier algorithm_identifier() const
virtual size_t signature_length() const =0
virtual ~Signature()=default
virtual std::string hash_function() const =0
virtual secure_vector< uint8_t > sign(RandomNumberGenerator &rng)=0
virtual void update(const uint8_t msg[], size_t msg_len)=0
virtual void update(const uint8_t msg[], size_t msg_len)=0
virtual std::string hash_function() const =0
virtual bool is_valid_signature(const uint8_t sig[], size_t sig_len)=0
virtual ~Verification()=default
std::vector< T, secure_allocator< T > > secure_vector