12#ifndef BOTAN_MCELIECE_INTERNAL_H_
13#define BOTAN_MCELIECE_INTERNAL_H_
15#include <botan/mceliece.h>
16#include <botan/pk_ops.h>
17#include <botan/internal/polyn_gf2m.h>
23 const uint8_t ciphertext[],
24 size_t ciphertext_len,
25 const McEliece_PrivateKey& key);
30 const McEliece_PrivateKey& key);
33 const uint8_t* ciphertext,
34 size_t ciphertext_len,
35 const McEliece_PrivateKey& key);
40 const McEliece_PublicKey& key,
41 RandomNumberGenerator& rng);
43McEliece_PrivateKey
generate_mceliece_key(RandomNumberGenerator& rng,
size_t ext_deg,
size_t code_length,
size_t t);
void mceliece_decrypt(secure_vector< uint8_t > &plaintext_out, secure_vector< uint8_t > &error_mask_out, const secure_vector< uint8_t > &ciphertext, const McEliece_PrivateKey &key)
void mceliece_encrypt(secure_vector< uint8_t > &ciphertext_out, secure_vector< uint8_t > &error_mask_out, const secure_vector< uint8_t > &plaintext, const McEliece_PublicKey &key, RandomNumberGenerator &rng)
McEliece_PrivateKey generate_mceliece_key(RandomNumberGenerator &rng, size_t ext_deg, size_t code_length, size_t t)
std::vector< T, secure_allocator< T > > secure_vector