1 #ifndef CRYPTOPP_PSSR_H
2 #define CRYPTOPP_PSSR_H
11 NAMESPACE_BEGIN(CryptoPP)
15 virtual bool AllowRecovery()
const =0;
16 virtual size_t SaltLen(
size_t hashLen)
const =0;
17 virtual size_t MinPadLen(
size_t hashLen)
const =0;
21 size_t MinRepresentativeBitLength(
size_t hashIdentifierLength,
size_t digestLength)
const;
22 size_t MaxRecoverableLength(
size_t representativeBitLength,
size_t hashIdentifierLength,
size_t digestLength)
const;
23 bool IsProbabilistic()
const;
24 bool AllowNonrecoverablePart()
const;
25 bool RecoverablePartFirst()
const;
27 const byte *recoverableMessage,
size_t recoverableMessageLength,
29 byte *representative,
size_t representativeBitLength)
const;
32 byte *representative,
size_t representativeBitLength,
33 byte *recoverableMessage)
const;
40 template <
bool ALLOW_RECOVERY,
class MGF=
P1363_MGF1,
int SALT_LEN=-1,
int MIN_PAD_LEN=0,
bool USE_HASH_ID=
false>
43 virtual bool AllowRecovery()
const {
return ALLOW_RECOVERY;}
44 virtual size_t SaltLen(
size_t hashLen)
const {
return SALT_LEN < 0 ? hashLen : SALT_LEN;}
45 virtual size_t MinPadLen(
size_t hashLen)
const {
return MIN_PAD_LEN < 0 ? hashLen : MIN_PAD_LEN;}
49 static std::string CRYPTOPP_API StaticAlgorithmName() {
return std::string(ALLOW_RECOVERY ?
"PSSR-" :
"PSS-") + MGF::StaticAlgorithmName();}
This file contains various padding schemes for public key algorithms.
This file contains helper classes/functions for implementing public key algorithms.
interface for random number generators
Base class for public key signature standard classes. These classes are used to select from variants ...
used to return decoding results