8#include <botan/keypair.h>
9#include <botan/pubkey.h>
22 const std::string& padding)
34 std::vector<uint8_t> plaintext;
37 std::vector<uint8_t> ciphertext = encryptor.
encrypt(plaintext, rng);
38 if(ciphertext == plaintext)
41 std::vector<uint8_t> decrypted =
unlock(decryptor.
decrypt(ciphertext));
43 return (plaintext == decrypted);
52 const std::string& padding)
54 PK_Signer signer(private_key, rng, padding);
57 std::vector<uint8_t> message(32);
58 rng.
randomize(message.data(), message.size());
60 std::vector<uint8_t> signature;
secure_vector< uint8_t > decrypt(const uint8_t in[], size_t length) const
size_t maximum_input_size() const override
std::vector< uint8_t > encrypt(const uint8_t in[], size_t length, RandomNumberGenerator &rng) const
std::vector< uint8_t > sign_message(const uint8_t in[], size_t length, RandomNumberGenerator &rng)
bool verify_message(const uint8_t msg[], size_t msg_length, const uint8_t sig[], size_t sig_length)
virtual void randomize(uint8_t output[], size_t length)=0
secure_vector< uint8_t > random_vec(size_t bytes)
bool signature_consistency_check(RandomNumberGenerator &rng, const Private_Key &private_key, const Public_Key &public_key, const std::string &padding)
bool encryption_consistency_check(RandomNumberGenerator &rng, const Private_Key &private_key, const Public_Key &public_key, const std::string &padding)
std::vector< T > unlock(const secure_vector< T > &in)