Fabcoin Core  0.16.2
P2P Digital Currency
Public Member Functions | List of all members
PK_Verifier Class Referenceabstract

Interface for public-key signature verifiers. More...

#include <cryptlib.h>

Inheritance diagram for PK_Verifier:
[legend]
Collaboration diagram for PK_Verifier:
[legend]

Public Member Functions

virtual ~PK_Verifier ()
 
virtual PK_MessageAccumulatorNewVerificationAccumulator () const =0
 Create a new HashTransformation to accumulate the message to be verified. More...
 
virtual void InputSignature (PK_MessageAccumulator &messageAccumulator, const byte *signature, size_t signatureLength) const =0
 Input signature into a message accumulator. More...
 
virtual bool Verify (PK_MessageAccumulator *messageAccumulator) const
 Check whether messageAccumulator contains a valid signature and message. More...
 
virtual bool VerifyAndRestart (PK_MessageAccumulator &messageAccumulator) const =0
 Check whether messageAccumulator contains a valid signature and message, and restart messageAccumulator. More...
 
virtual bool VerifyMessage (const byte *message, size_t messageLen, const byte *signature, size_t signatureLen) const
 Check whether input signature is a valid signature for input message. More...
 
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...
 
- Public Member Functions inherited from PK_SignatureScheme
virtual ~PK_SignatureScheme ()
 
virtual size_t SignatureLength () const =0
 Provides the signature length if it only depends on the key. More...
 
virtual size_t MaxSignatureLength (size_t recoverablePartLength=0) const
 Provides the maximum signature length produced given the length of the recoverable message part. More...
 
virtual size_t MaxRecoverableLength () const =0
 Provides the length of longest message that can be recovered. More...
 
virtual size_t MaxRecoverableLengthFromSignatureLength (size_t signatureLength) const =0
 Provides the length of longest message that can be recovered from a signature of given length. More...
 
virtual bool IsProbabilistic () const =0
 Determines whether a signature scheme requires a random number generator. More...
 
virtual bool AllowNonrecoverablePart () const =0
 Determines whether the non-recoverable message part can be signed. More...
 
virtual bool SignatureUpfront () const
 Determines whether the signature must be input before the message. More...
 
virtual bool RecoverablePartFirst () const =0
 Determines whether the recoverable part must be input before the non-recoverable part. More...
 
- Public Member Functions inherited from PublicKeyAlgorithm
virtual ~PublicKeyAlgorithm ()
 
CryptoMaterialAccessMaterial ()
 Retrieves a reference to a Public Key. More...
 
const CryptoMaterialGetMaterial () const
 Retrieves a reference to a Public Key. More...
 
virtual PublicKeyAccessPublicKey ()=0
 Retrieves a reference to a Public Key. More...
 
virtual const PublicKeyGetPublicKey () const
 Retrieves a reference to a Public Key. More...
 
- Public Member Functions inherited from AsymmetricAlgorithm
virtual ~AsymmetricAlgorithm ()
 
void BERDecode (BufferedTransformation &bt)
 Loads this object from a BufferedTransformation. More...
 
void DEREncode (BufferedTransformation &bt) const
 Saves this object to a BufferedTransformation. More...
 
- Public Member Functions inherited from Algorithm
virtual ~Algorithm ()
 
 Algorithm (bool checkSelfTestStatus=true)
 Interface for all crypto algorithms. More...
 
virtual std::string AlgorithmName () const
 Provides the name of this algorithm. More...
 
- Public Member Functions inherited from Clonable
virtual ~Clonable ()
 
virtual ClonableClone () const
 Copies this object. More...
 

Detailed Description

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 Recover* functions should be used in that case.

Definition at line 2592 of file cryptlib.h.

Constructor & Destructor Documentation

virtual PK_Verifier::~PK_Verifier ( )
inlinevirtual

Definition at line 2595 of file cryptlib.h.

Member Function Documentation

virtual void PK_Verifier::InputSignature ( PK_MessageAccumulator messageAccumulator,
const byte signature,
size_t  signatureLength 
) const
pure virtual

Input signature into a message accumulator.

Parameters
messageAccumulatora pointer to a PK_MessageAccumulator derived class
signaturethe signature on the message
signatureLengththe size of the signature

Implemented in DL_VerifierBase< T >, DL_VerifierBase< SCHEME_OPTIONS::Element >, and TF_VerifierBase.

Here is the caller graph for this function:

virtual PK_MessageAccumulator* PK_Verifier::NewVerificationAccumulator ( ) const
pure virtual

Create a new HashTransformation to accumulate the message to be verified.

Returns
a pointer to a PK_MessageAccumulator

NewVerificationAccumulator() can be used with all verification methods. Verify() will autimatically delete the accumulator pointer. The caller is responsible for deletion if a method is called that takes a reference.

Implemented in DL_VerifierImpl< SCHEME_OPTIONS >, and TF_ObjectImplBase< TF_VerifierBase, SCHEME_OPTIONS, SCHEME_OPTIONS::PublicKey >.

Here is the caller graph for this function:

DecodingResult PK_Verifier::Recover ( byte recoveredMessage,
PK_MessageAccumulator messageAccumulator 
) const
virtual

Recover a message from its signature.

Parameters
recoveredMessagea pointer to the recoverable message part to be verified
messageAccumulatora pointer to a PK_MessageAccumulator derived class
Returns
the result of the verification operation

Recover() deletes the messageAccumulator, even if an exception is thrown.

Precondition
COUNTOF(recoveredMessage) == MaxRecoverableLengthFromSignatureLength(signatureLength)

Definition at line 914 of file cryptlib.cpp.

virtual DecodingResult PK_Verifier::RecoverAndRestart ( byte recoveredMessage,
PK_MessageAccumulator messageAccumulator 
) const
pure virtual

Recover a message from its signature.

Parameters
recoveredMessagea pointer to the recoverable message part to be verified
messageAccumulatora pointer to a PK_MessageAccumulator derived class
Returns
the result of the verification operation

RecoverAndRestart() restarts the messageAccumulator

Precondition
COUNTOF(recoveredMessage) == MaxRecoverableLengthFromSignatureLength(signatureLength)

Implemented in DL_VerifierBase< T >, DL_VerifierBase< SCHEME_OPTIONS::Element >, and TF_VerifierBase.

DecodingResult PK_Verifier::RecoverMessage ( byte recoveredMessage,
const byte nonrecoverableMessage,
size_t  nonrecoverableMessageLength,
const byte signature,
size_t  signatureLength 
) const
virtual

Recover a message from its signature.

Parameters
recoveredMessagea pointer for the recovered message
nonrecoverableMessagea pointer to the non-recoverable message part to be signed
nonrecoverableMessageLengththe size of the non-recoverable message part
signaturethe signature on the message
signatureLengththe size of the signature
Returns
the result of the verification operation
Precondition
COUNTOF(recoveredMessage) == MaxRecoverableLengthFromSignatureLength(signatureLength)

Definition at line 920 of file cryptlib.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool PK_Verifier::Verify ( PK_MessageAccumulator messageAccumulator) const
virtual

Check whether messageAccumulator contains a valid signature and message.

Parameters
messageAccumulatora pointer to a PK_MessageAccumulator derived class
Returns
true if the signature is valid, false otherwise

Verify() deletes the messageAccumulator, even if an exception is thrown.

Definition at line 900 of file cryptlib.cpp.

virtual bool PK_Verifier::VerifyAndRestart ( PK_MessageAccumulator messageAccumulator) const
pure virtual

Check whether messageAccumulator contains a valid signature and message, and restart messageAccumulator.

Parameters
messageAccumulatora reference to a PK_MessageAccumulator derived class
Returns
true if the signature is valid, false otherwise

VerifyAndRestart() restarts the messageAccumulator

Implemented in DL_VerifierBase< T >, DL_VerifierBase< SCHEME_OPTIONS::Element >, and TF_VerifierBase.

Here is the caller graph for this function:

bool PK_Verifier::VerifyMessage ( const byte message,
size_t  messageLen,
const byte signature,
size_t  signatureLen 
) const
virtual

Check whether input signature is a valid signature for input message.

Parameters
messagea pointer to the message to be verified
messageLenthe size of the message
signaturea pointer to the signature over the message
signatureLenthe size of the signature
Returns
true if the signature is valid, false otherwise

Definition at line 906 of file cryptlib.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:


The documentation for this class was generated from the following files: