diff options
Diffstat (limited to 'src/lib/pk_pad/eme1/eme1.h')
-rw-r--r-- | src/lib/pk_pad/eme1/eme1.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/lib/pk_pad/eme1/eme1.h b/src/lib/pk_pad/eme1/eme1.h new file mode 100644 index 000000000..eb6fc6bf5 --- /dev/null +++ b/src/lib/pk_pad/eme1/eme1.h @@ -0,0 +1,43 @@ +/* +* EME1 +* (C) 1999-2007 Jack Lloyd +* +* Distributed under the terms of the Botan license +*/ + +#ifndef BOTAN_EME1_H__ +#define BOTAN_EME1_H__ + +#include <botan/eme.h> +#include <botan/kdf.h> +#include <botan/hash.h> + +namespace Botan { + +/** +* EME1, aka OAEP +*/ +class BOTAN_DLL EME1 : public EME + { + public: + size_t maximum_input_size(size_t) const; + + /** + * @param hash object to use for hashing (takes ownership) + * @param P an optional label. Normally empty. + */ + EME1(HashFunction* hash, const std::string& P = ""); + + ~EME1() { delete mgf; } + private: + secure_vector<byte> pad(const byte[], size_t, size_t, + RandomNumberGenerator&) const; + secure_vector<byte> unpad(const byte[], size_t, size_t) const; + + secure_vector<byte> Phash; + MGF* mgf; + }; + +} + +#endif |