Crypto++
5.6.3
Free C++ class library of cryptographic schemes
|
Interface for public-key signature verifiers. More...
Public Member Functions | |
virtual PK_MessageAccumulator * | NewVerificationAccumulator () const =0 |
create a new HashTransformation to accumulate the message to be verified | |
virtual void | InputSignature (PK_MessageAccumulator &messageAccumulator, const byte *signature, size_t signatureLength) const =0 |
input signature into a message accumulator | |
virtual bool | Verify (PK_MessageAccumulator *messageAccumulator) const |
check whether messageAccumulator contains a valid signature and message, and delete messageAccumulator (even in case of exception thrown) | |
virtual bool | VerifyAndRestart (PK_MessageAccumulator &messageAccumulator) const =0 |
check whether messageAccumulator contains a valid signature and message, and restart messageAccumulator | |
virtual bool | VerifyMessage (const byte *message, size_t messageLen, const byte *signature, size_t signatureLength) const |
check whether input signature is a valid signature for input message | |
virtual DecodingResult | Recover (byte *recoveredMessage, PK_MessageAccumulator *messageAccumulator) const |
recover a message from its signature More... | |
virtual DecodingResult | RecoverAndRestart (byte *recoveredMessage, PK_MessageAccumulator &messageAccumulator) const =0 |
recover a message from its signature More... | |
virtual DecodingResult | RecoverMessage (byte *recoveredMessage, const byte *nonrecoverableMessage, size_t nonrecoverableMessageLength, const byte *signature, size_t signatureLength) const |
recover a message from its signature More... | |
virtual size_t | SignatureLength () const =0 |
signature length if it only depends on the key, otherwise 0 | |
virtual size_t | MaxSignatureLength (size_t recoverablePartLength=0) const |
maximum signature length produced for a given length of recoverable message part | |
virtual size_t | MaxRecoverableLength () const =0 |
length of longest message that can be recovered, or 0 if this signature scheme does not support message recovery | |
virtual size_t | MaxRecoverableLengthFromSignatureLength (size_t signatureLength) const =0 |
length of longest message that can be recovered from a signature of given length, or 0 if this signature scheme does not support message recovery | |
virtual bool | IsProbabilistic () const =0 |
requires a random number generator to sign More... | |
virtual bool | AllowNonrecoverablePart () const =0 |
whether or not a non-recoverable message part can be signed | |
virtual bool | SignatureUpfront () const |
if this function returns true, during verification you must input the signature before the message, otherwise you can input it at anytime */ | |
virtual bool | RecoverablePartFirst () const =0 |
whether you must input the recoverable part before the non-recoverable part during signing | |
CryptoMaterial & | AccessMaterial () |
returns a reference to the crypto material used by this object | |
const CryptoMaterial & | GetMaterial () const |
returns a const reference to the crypto material used by this object | |
virtual PublicKey & | AccessPublicKey ()=0 |
virtual const PublicKey & | GetPublicKey () const |
void | BERDecode (BufferedTransformation &bt) |
for backwards compatibility, calls AccessMaterial().Load(bt) | |
void | DEREncode (BufferedTransformation &bt) const |
for backwards compatibility, calls GetMaterial().Save(bt) | |
virtual std::string | AlgorithmName () const |
Provides the name of this algorithm. More... | |
virtual Clonable * | Clone () const |
Copies this object. More... | |
Interface for public-key signature verifiers.
The Recover* functions throw NotImplemented if the signature scheme does not support message recovery. The Verify* functions throw InvalidDataFormat if the scheme does support message recovery and the signature contains a non-empty recoverable message part. The Recovery* functions should be used in that case.
Definition at line 2355 of file cryptlib.h.
|
virtual |
recover a message from its signature
Definition at line 905 of file cryptlib.cpp.
|
pure virtual |
recover a message from its signature
Implemented in DL_VerifierBase< T >, DL_VerifierBase< SCHEME_OPTIONS::Element >, and TF_VerifierBase.
|
virtual |
recover a message from its signature
Definition at line 911 of file cryptlib.cpp.
References HashTransformation::Update().
Referenced by FixedRNG::GenerateBlock().
|
pure virtualinherited |
requires a random number generator to sign
if this returns false, NullRNG() can be passed to functions that take RandomNumberGenerator &
|
inlinevirtualinherited |
Provides the name of this algorithm.
The standard algorithm name can be a name like AES or AES/GCM. Some algorithms do not have standard names yet. For example, there is no standard algorithm name for Shoup's ECIES.
Reimplemented in AuthenticatedSymmetricCipher, SignatureVerificationFilter, SignerFilter, AuthenticatedDecryptionFilter, HashVerificationFilter, HashFilter, StreamTransformationFilter, ClassNullRNG, BitBucket, RDSEED, DH_Domain< GROUP_PARAMETERS, COFACTOR_OPTION >, HMAC< T >, RDRAND, CRC32, GCM_Base, Adler32, EAX_Base, CCM_Base, SHA3, and VMAC_Base.
Definition at line 488 of file cryptlib.h.
Referenced by VariableRounds< 6, 2 >::StaticGetDefaultRounds().
|
inlinevirtualinherited |
Copies this object.
NotImplemented |
Definition at line 464 of file cryptlib.h.