diff options
Diffstat (limited to 'src/lib/pk_pad/eme_oaep/oaep.h')
-rw-r--r-- | src/lib/pk_pad/eme_oaep/oaep.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/lib/pk_pad/eme_oaep/oaep.h b/src/lib/pk_pad/eme_oaep/oaep.h new file mode 100644 index 000000000..250759821 --- /dev/null +++ b/src/lib/pk_pad/eme_oaep/oaep.h @@ -0,0 +1,42 @@ +/* +* OAEP +* (C) 1999-2007 Jack Lloyd +* +* Distributed under the terms of the Botan license +*/ + +#ifndef BOTAN_OAEP_H__ +#define BOTAN_OAEP_H__ + +#include <botan/eme.h> +#include <botan/kdf.h> +#include <botan/hash.h> +#include <memory> + +namespace Botan { + +/** +* OAEP (called EME1 in IEEE 1363 and in earlier versions of the library) +*/ +class BOTAN_DLL OAEP : 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. + */ + OAEP(HashFunction* hash, const std::string& P = ""); + 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> m_Phash; + std::unique_ptr<HashFunction> m_hash; + }; + +} + +#endif |