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:

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 HashTransformation * | NewRecoveryAccumulator (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 HashTransformation * | NewMessageAccumulator () const=0
| deprecated, please use PK_Signer::NewSignatureAccumulator or PK_Verifier::NewVerificationAccumulator instead
virtual bool | SignatureUpfrontForVerification () const
virtual HashTransformation * | NewVerificationAccumulator (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
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
| returns name of this algorithm, not universally implemented yet
virtual Clonable * | Clone () 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:

- cryptlib.h