/* * (C) Copyright Projet SECRET, INRIA, Rocquencourt * (C) Bhaskar Biswas and Nicolas Sendrier * * (C) 2014 cryptosource GmbH * (C) 2014 Falko Strenzke fstrenzke@cryptosource.de * * Botan is released under the Simplified BSD License (see license.txt) * */ #ifndef BOTAN_MCELIECE_INTERNAL_H__ #define BOTAN_MCELIECE_INTERNAL_H__ #include #include #include #include namespace Botan { void mceliece_decrypt(secure_vector& plaintext_out, secure_vector& error_mask_out, const uint8_t ciphertext[], size_t ciphertext_len, const McEliece_PrivateKey& key); void mceliece_decrypt(secure_vector& plaintext_out, secure_vector& error_mask_out, const secure_vector& ciphertext, const McEliece_PrivateKey& key); secure_vector mceliece_decrypt( secure_vector & error_pos, const uint8_t *ciphertext, uint32_t ciphertext_len, const McEliece_PrivateKey & key); void mceliece_encrypt(secure_vector& ciphertext_out, secure_vector& error_mask_out, const secure_vector& plaintext, const McEliece_PublicKey& key, RandomNumberGenerator& rng); McEliece_PrivateKey generate_mceliece_key(RandomNumberGenerator &rng, uint32_t ext_deg, uint32_t code_length, uint32_t t); } #endif