diff options
Diffstat (limited to 'botan/src/pubkey/elgamal/elg_core.h')
-rw-r--r-- | botan/src/pubkey/elgamal/elg_core.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/botan/src/pubkey/elgamal/elg_core.h b/botan/src/pubkey/elgamal/elg_core.h new file mode 100644 index 0000000..a7768a6 --- /dev/null +++ b/botan/src/pubkey/elgamal/elg_core.h @@ -0,0 +1,44 @@ +/* +* ElGamal Core +* (C) 1999-2007 Jack Lloyd +* +* Distributed under the terms of the Botan license +*/ + +#ifndef BOTAN_ELGAMAL_CORE_H__ +#define BOTAN_ELGAMAL_CORE_H__ + +#include <botan/elg_op.h> +#include <botan/blinding.h> +#include <botan/dl_group.h> + +namespace Botan { + +/* +* ElGamal Core +*/ +class BOTAN_DLL ELG_Core + { + public: + SecureVector<byte> encrypt(const byte[], u32bit, const BigInt&) const; + SecureVector<byte> decrypt(const byte[], u32bit) const; + + ELG_Core& operator=(const ELG_Core&); + + ELG_Core() { op = 0; } + ELG_Core(const ELG_Core&); + + ELG_Core(const DL_Group&, const BigInt&); + ELG_Core(RandomNumberGenerator&, const DL_Group&, + const BigInt&, const BigInt&); + + ~ELG_Core() { delete op; } + private: + ELG_Operation* op; + Blinder blinder; + u32bit p_bytes; + }; + +} + +#endif |