Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

PK_VerifierWithRecovery Class Reference

#include <cryptlib.h>

Inheritance diagram for PK_VerifierWithRecovery:

PK_SignatureSchemeWithRecovery PK_Verifier PK_SignatureScheme PK_SignatureScheme PublicKeyAlgorithm AsymmetricAlgorithm Algorithm Clonable VerifierWithRecoveryTemplate< TF, H > List of all members.

Detailed Description

interface for public-key verifiers with recovery

A PK_VerifierWithRecovery can also be used the same way as a PK_Verifier, where the signature and the entire message is given to Verify() or VerifyMessage() as input.

Definition at line 1330 of file cryptlib.h.

Public Member Functions

virtual bool SignatureUpfrontForRecovery () const=0
virtual HashTransformationNewRecoveryAccumulator (const byte *signature=NULL) const=0
 create a new HashTransformation to accumulate leftover message

virtual DecodingResult Recover (byte *recoveredMessage, HashTransformation *recoveryAccumulator, const byte *signature=NULL) const=0
 recover a message from its signature

virtual DecodingResult RecoverMessage (byte *recoveredMessage, const byte *message, unsigned int messageLen, const byte *signature) const
 recover a message from its signature

virtual unsigned int MaximumRecoverableLength () const=0
 length of longest message that can be fully recovered

virtual bool AllowLeftoverMessage () const=0
 whether or not messages longer than MaximumRecoverableLength() can be signed

virtual unsigned int SignatureLength () const=0
 signature length support by this object (as either input or output)

virtual HashTransformationNewMessageAccumulator () const=0
 deprecated, please use PK_Signer::NewSignatureAccumulator or PK_Verifier::NewVerificationAccumulator instead

virtual bool SignatureUpfrontForVerification () const
virtual HashTransformationNewVerificationAccumulator (const byte *signature=NULL) const
 create a new HashTransformation to accumulate the message to be verified

virtual bool Verify (HashTransformation *messageAccumulator, const byte *signature=NULL) const
 check whether sig is a valid signature for messageAccumulator, and delete messageAccumulator (even in case of exception thrown)

virtual bool VerifyAndRestart (HashTransformation &messageAccumulator, const byte *signature) const=0
 check whether sig is a valid signature for messageAccumulator, and restart messageAccumulator

virtual void InitializeVerificationAccumulator (HashTransformation &messageAccumulator, const byte *signature) const
 only useful if SignatureUpfrontForVerification() == true

virtual bool VerifyMessage (const byte *message, unsigned int messageLen, const byte *signature) const
 check whether sig is a valid signature for message

CryptoMaterialAccessMaterial ()
 returns a reference to the crypto material used by this object

const CryptoMaterialGetMaterial () const
 returns a const reference to the crypto material used by this object

virtual PublicKeyAccessPublicKey ()=0
virtual const PublicKeyGetPublicKey () 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
 returns name of this algorithm, not universally implemented yet

virtual ClonableClone () const
 this is not implemented by most classes yet


Member Function Documentation

virtual bool PK_VerifierWithRecovery::SignatureUpfrontForRecovery  )  const [pure virtual]
 

If this function returns true, you must input the signature when calling NewRecoveryAccumulator(). Otherwise, you must input the signature when calling Recover().

Implemented in VerifierWithRecoveryTemplate< TF, H >.

virtual DecodingResult PK_VerifierWithRecovery::Recover byte *  recoveredMessage,
HashTransformation recoveryAccumulator,
const byte *  signature = NULL
const [pure virtual]
 

recover a message from its signature

Precondition:
leftoverMessageAccumulator was obtained by calling NewLeftoverMessageAccumulator(signature)

HashTransformation::Final() has not been called on leftoverMessageAccumulator

length of signature == SignatureLength()

size of recoveredMessage == MaximumRecoverableLength()

Implemented in VerifierWithRecoveryTemplate< TF, H >.

virtual DecodingResult PK_VerifierWithRecovery::RecoverMessage byte *  recoveredMessage,
const byte *  message,
unsigned int  messageLen,
const byte *  signature
const [inline, virtual]
 

recover a message from its signature

Note:
This function should be equivalent to Recover(recoveredMessage, NewRecoveryAccumulator(signature), signature)
Precondition:
length of signature == SignatureLength()

size of recoveredMessage == MaximumRecoverableLength()

Definition at line 1359 of file cryptlib.h.

virtual bool PK_SignatureSchemeWithRecovery::AllowLeftoverMessage  )  const [pure virtual, inherited]
 

whether or not messages longer than MaximumRecoverableLength() can be signed

If this function returns false, any message longer than MaximumRecoverableLength() will be truncated for signature and will fail verification.

Implemented in SignatureSystemWithRecoveryBaseTemplate< H >.

virtual bool PK_Verifier::SignatureUpfrontForVerification  )  const [inline, virtual, inherited]
 

If this function returns true, you must input the signature when calling NewVerificationAccumulator(). Otherwise, you must input the signature when calling Verify().

Definition at line 1268 of file cryptlib.h.

virtual HashTransformation* PK_Verifier::NewVerificationAccumulator const byte *  signature = NULL  )  const [inline, virtual, inherited]
 

create a new HashTransformation to accumulate the message to be verified

Parameters:
signature is ignored if SignatureUpfrontForVerification() == false
signature may be NULL to indicate that the signature is not available yet

Definition at line 1274 of file cryptlib.h.

References PK_SignatureScheme::NewMessageAccumulator().

Referenced by PK_Verifier::VerifyMessage().

bool PK_Verifier::Verify HashTransformation messageAccumulator,
const byte *  signature = NULL
const [virtual, inherited]
 

check whether sig is a valid signature for messageAccumulator, and delete messageAccumulator (even in case of exception thrown)

Precondition:
messageAccumulator was obtained by calling NewVerificationAccumulator()

HashTransformation::Final() has not been called on messageAccumulator

length of signature == SignatureLength()

Parameters:
signature is ignored if SignatureUpfrontForVerification() == true

Definition at line 632 of file cryptlib.cpp.

References PK_Verifier::VerifyAndRestart().

virtual bool PK_Verifier::VerifyAndRestart HashTransformation messageAccumulator,
const byte *  signature
const [pure virtual, inherited]
 

check whether sig is a valid signature for messageAccumulator, and restart messageAccumulator

Note:
depending on SignatureUpfrontForVerification(), signature is either the current or the next signature
Parameters:
signature may be NULL to indicate that the next signature is not available yet

Implemented in PK_VerifierBase< H >, and VerifierWithRecoveryTemplate< TF, H >.

Referenced by PK_Verifier::Verify(), and PK_Verifier::VerifyMessage().

bool PK_Verifier::VerifyMessage const byte *  message,
unsigned int  messageLen,
const byte *  signature
const [virtual, inherited]
 

check whether sig is a valid signature for message

Precondition:
size of signature == SignatureLength()

Definition at line 638 of file cryptlib.cpp.

References PK_Verifier::NewVerificationAccumulator(), and PK_Verifier::VerifyAndRestart().


The documentation for this class was generated from the following file:
Generated on Tue Jul 8 23:35:22 2003 for Crypto++ by doxygen 1.3.2