00001
#ifndef CRYPTOPP_OAEP_H
00002
#define CRYPTOPP_OAEP_H
00003
00004
#include "pubkey.h"
00005
00006 NAMESPACE_BEGIN(CryptoPP)
00007
00008 extern byte OAEP_P_DEFAULT[];
00009
00010
00011 template <class H, class MGF=
P1363_MGF1, byte *P=OAEP_P_DEFAULT,
unsigned int PLen=0>
00012 class
OAEP : public
PK_EncryptionMessageEncodingMethod, public
EncryptionStandard
00013 {
00014
public:
00015
static std::string StaticAlgorithmName() {
return std::string(
"OAEP-") + MGF::StaticAlgorithmName() +
"(" + H::StaticAlgorithmName() +
")";}
00016
typedef OAEP<H, MGF, P, PLen> EncryptionMessageEncodingMethod;
00017
00018
unsigned int MaxUnpaddedLength(
unsigned int paddedLength)
const;
00019
void Pad(
RandomNumberGenerator &rng,
const byte *raw,
unsigned int inputLength, byte *padded,
unsigned int paddedLength)
const;
00020
DecodingResult Unpad(
const byte *padded,
unsigned int paddedLength, byte *raw)
const;
00021 };
00022
00023 NAMESPACE_END
00024
00025
#endif