Crypto++
5.6.5
Free C++ class library of cryptographic schemes
oaep.h
1
#ifndef CRYPTOPP_OAEP_H
2
#define CRYPTOPP_OAEP_H
3
4
#include "
cryptlib.h
"
5
#include "
pubkey.h
"
6
#include "
sha.h
"
7
8
NAMESPACE_BEGIN(
CryptoPP
)
9
10
//! _
11
class CRYPTOPP_DLL
OAEP_Base
: public
PK_EncryptionMessageEncodingMethod
12
{
13
public
:
14
bool
ParameterSupported(
const
char
*name)
const
{
return
strcmp(name, Name::EncodingParameters()) == 0;}
15
size_t
MaxUnpaddedLength(
size_t
paddedLength)
const
;
16
void
Pad(
RandomNumberGenerator
&rng,
const
byte
*raw,
size_t
inputLength,
byte
*padded,
size_t
paddedLength,
const
NameValuePairs
¶meters)
const
;
17
DecodingResult
Unpad(
const
byte
*padded,
size_t
paddedLength,
byte
*raw,
const
NameValuePairs
¶meters)
const
;
18
19
protected
:
20
virtual
unsigned
int
DigestSize()
const
=0;
21
virtual
HashTransformation
* NewHash()
const
=0;
22
virtual
MaskGeneratingFunction
* NewMGF()
const
=0;
23
};
24
25
//! <a href="http://www.weidai.com/scan-mirror/ca.html#cem_OAEP-MGF1">EME-OAEP</a>, for use with classes derived from TF_ES
26
template
<
class
H,
class
MGF=P1363_MGF1>
27
class
OAEP
:
public
OAEP_Base
,
public
EncryptionStandard
28
{
29
public
:
30
static
std::string CRYPTOPP_API StaticAlgorithmName() {
return
std::string(
"OAEP-"
) + MGF::StaticAlgorithmName() +
"("
+ H::StaticAlgorithmName() +
")"
;}
31
typedef
OAEP<H, MGF>
EncryptionMessageEncodingMethod
;
32
33
protected
:
34
unsigned
int
DigestSize()
const
{
return
H::DIGESTSIZE;}
35
HashTransformation
* NewHash()
const
{
return
new
H;}
36
MaskGeneratingFunction
* NewMGF()
const
{
return
new
MGF;}
37
};
38
39
CRYPTOPP_DLL_TEMPLATE_CLASS
OAEP<SHA>
;
40
41
NAMESPACE_END
42
43
#endif
HashTransformation
Interface for hash functions and data processing part of MACs.
Definition:
cryptlib.h:931
MaskGeneratingFunction
Mask generation function interface.
Definition:
pubkey.h:689
pubkey.h
This file contains helper classes/functions for implementing public key algorithms.
RandomNumberGenerator
Interface for random number generators.
Definition:
cryptlib.h:1193
sha.h
Classes for SHA-1 and SHA-2 family of message digests.
EncryptionStandard
Base class for public key encryption standard classes.
Definition:
pubkey.h:2149
DecodingResult
Returns a decoding results.
Definition:
cryptlib.h:241
OAEP
EME-OAEP, for use with classes derived from TF_ES
Definition:
oaep.h:27
PK_EncryptionMessageEncodingMethod
Message encoding method for public key encryption.
Definition:
pubkey.h:221
CryptoPP
Crypto++ library namespace.
NameValuePairs
Interface for retrieving values given their names.
Definition:
cryptlib.h:282
cryptlib.h
Abstract base classes that provide a uniform interface to this library.
OAEP_Base
_
Definition:
oaep.h:11
Generated on Fri Feb 11 2022 18:35:49 for Crypto++ by
1.8.17