Security Scol plugin
oaep.h
Go to the documentation of this file.
1// oaep.h - originally written and placed in the public domain by Wei Dai
2
6
7#ifndef CRYPTOPP_OAEP_H
8#define CRYPTOPP_OAEP_H
9
10#include "cryptlib.h"
11#include "pubkey.h"
12#include "sha.h"
13
14NAMESPACE_BEGIN(CryptoPP)
15
16
19{
20public:
21 bool ParameterSupported(const char *name) const {return strcmp(name, Name::EncodingParameters()) == 0;}
22 size_t MaxUnpaddedLength(size_t paddedLength) const;
23 void Pad(RandomNumberGenerator &rng, const byte *raw, size_t inputLength, byte *padded, size_t paddedLength, const NameValuePairs &parameters) const;
24 DecodingResult Unpad(const byte *padded, size_t paddedLength, byte *raw, const NameValuePairs &parameters) const;
25
26protected:
27 virtual unsigned int DigestSize() const =0;
28 virtual HashTransformation * NewHash() const =0;
29 virtual MaskGeneratingFunction * NewMGF() const =0;
30};
31
37template <class H, class MGF=P1363_MGF1>
38class OAEP : public OAEP_Base, public EncryptionStandard
39{
40public:
41 static std::string CRYPTOPP_API StaticAlgorithmName() {return std::string("OAEP-") + MGF::StaticAlgorithmName() + "(" + H::StaticAlgorithmName() + ")";}
43
44protected:
45 unsigned int DigestSize() const {return H::DIGESTSIZE;}
46 HashTransformation * NewHash() const {return new H;}
47 MaskGeneratingFunction * NewMGF() const {return new MGF;}
48};
49
50CRYPTOPP_DLL_TEMPLATE_CLASS OAEP<SHA1>;
51
52NAMESPACE_END
53
54#endif
Interface for hash functions and data processing part of MACs.
Definition cryptlib.h:1113
Mask generation function interface.
Definition pubkey.h:688
Interface for retrieving values given their names.
Definition cryptlib.h:322
OAEP padding base class.
Definition oaep.h:19
OAEP padding.
Definition oaep.h:39
Message encoding method for public key encryption.
Definition pubkey.h:209
Interface for random number generators.
Definition cryptlib.h:1435
Abstract base classes that provide a uniform interface to this library.
This file contains helper classes/functions for implementing public key algorithms.
Classes for SHA-1 and SHA-2 family of message digests.
Returns a decoding results.
Definition cryptlib.h:278
Base class for public key encryption standard classes.
Definition pubkey.h:2274