7#ifndef BOTAN_PK_OPERATIONS_H_
8#define BOTAN_PK_OPERATIONS_H_
26#include <botan/pk_keys.h>
27#include <botan/secmem.h>
32class RandomNumberGenerator;
86 virtual void update(std::span<const uint8_t> input) = 0;
111 virtual void update(std::span<const uint8_t> input) = 0;
145 std::span<const uint8_t> other_key,
146 std::span<const uint8_t> salt) = 0;
159 std::span<uint8_t> out_shared_key,
161 size_t desired_shared_key_len,
162 std::span<const uint8_t> salt) = 0;
174 std::span<const uint8_t> encapsulated_key,
175 size_t desired_shared_key_len,
176 std::span<const uint8_t> salt) = 0;
virtual secure_vector< uint8_t > decrypt(uint8_t &valid_mask, std::span< const uint8_t > ctext)=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 std::vector< uint8_t > encrypt(std::span< const uint8_t > msg, RandomNumberGenerator &rng)=0
virtual ~Encryption()=default
virtual size_t max_input_bits() const =0
virtual void kem_decrypt(std::span< uint8_t > out_shared_key, std::span< const uint8_t > encapsulated_key, size_t desired_shared_key_len, std::span< const uint8_t > salt)=0
virtual ~KEM_Decryption()=default
virtual size_t encapsulated_key_length() const =0
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 void kem_encrypt(std::span< uint8_t > out_encapsulated_key, std::span< uint8_t > out_shared_key, RandomNumberGenerator &rng, size_t desired_shared_key_len, std::span< const uint8_t > salt)=0
virtual size_t shared_key_length(size_t desired_shared_key_len) const =0
virtual size_t agreed_value_size() const =0
virtual secure_vector< uint8_t > agree(size_t key_len, std::span< const uint8_t > other_key, std::span< const uint8_t > salt)=0
virtual ~Key_Agreement()=default
virtual size_t signature_length() const =0
virtual ~Signature()=default
virtual std::string hash_function() const =0
virtual void update(std::span< const uint8_t > input)=0
virtual std::vector< uint8_t > sign(RandomNumberGenerator &rng)=0
virtual std::string hash_function() const =0
virtual void update(std::span< const uint8_t > input)=0
virtual ~Verification()=default
virtual bool is_valid_signature(std::span< const uint8_t > sig)=0
#define BOTAN_UNSTABLE_API
std::vector< T, secure_allocator< T > > secure_vector