Crypto++ 8.9
Free C++ class library of cryptographic schemes
Public Member Functions | List of all members
PK_Signer Class Referenceabstract

Interface for public-key signers. More...

#include <cryptlib.h>

+ Inheritance diagram for PK_Signer:

Public Member Functions

virtual PK_MessageAccumulatorNewSignatureAccumulator (RandomNumberGenerator &rng) const =0
 Create a new HashTransformation to accumulate the message to be signed.
 
virtual void InputRecoverableMessage (PK_MessageAccumulator &messageAccumulator, const byte *recoverableMessage, size_t recoverableMessageLength) const =0
 Input a recoverable message to an accumulator.
 
virtual size_t Sign (RandomNumberGenerator &rng, PK_MessageAccumulator *messageAccumulator, byte *signature) const
 Sign and delete the messageAccumulator.
 
virtual size_t SignAndRestart (RandomNumberGenerator &rng, PK_MessageAccumulator &messageAccumulator, byte *signature, bool restart=true) const =0
 Sign and restart messageAccumulator.
 
virtual size_t SignMessage (RandomNumberGenerator &rng, const byte *message, size_t messageLen, byte *signature) const
 Sign a message.
 
virtual size_t SignMessageWithRecovery (RandomNumberGenerator &rng, const byte *recoverableMessage, size_t recoverableMessageLength, const byte *nonrecoverableMessage, size_t nonrecoverableMessageLength, byte *signature) const
 Sign a recoverable message.
 
- Public Member Functions inherited from PK_SignatureScheme
virtual size_t SignatureLength () const =0
 Provides the signature length if it only depends on the key.
 
virtual size_t MaxSignatureLength (size_t recoverablePartLength=0) const
 Provides the maximum signature length produced given the length of the recoverable message part.
 
virtual size_t MaxRecoverableLength () const =0
 Provides the length of longest message that can be recovered.
 
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.
 
virtual bool IsProbabilistic () const =0
 Determines whether a signature scheme requires a random number generator.
 
virtual bool AllowNonrecoverablePart () const =0
 Determines whether the non-recoverable message part can be signed.
 
virtual bool SignatureUpfront () const
 Determines whether the signature must be input before the message.
 
virtual bool RecoverablePartFirst () const =0
 Determines whether the recoverable part must be input before the non-recoverable part.
 
- Public Member Functions inherited from PrivateKeyAlgorithm
CryptoMaterialAccessMaterial ()
 Retrieves a reference to a Private Key.
 
const CryptoMaterialGetMaterial () const
 Retrieves a reference to a Private Key.
 
virtual PrivateKeyAccessPrivateKey ()=0
 Retrieves a reference to a Private Key.
 
virtual const PrivateKeyGetPrivateKey () const
 Retrieves a reference to a Private Key.
 
- Public Member Functions inherited from Algorithm
 Algorithm (bool checkSelfTestStatus=true)
 Interface for all crypto algorithms.
 
virtual std::string AlgorithmName () const
 Provides the name of this algorithm.
 
virtual std::string AlgorithmProvider () const
 Retrieve the provider of this algorithm.
 
- Public Member Functions inherited from Clonable
virtual ClonableClone () const
 Copies this object.
 

Detailed Description

Interface for public-key signers.

Definition at line 2881 of file cryptlib.h.

Constructor & Destructor Documentation

◆ ~PK_Signer()

virtual PK_Signer::~PK_Signer ( )
inlinevirtual

Definition at line 2884 of file cryptlib.h.

Member Function Documentation

◆ NewSignatureAccumulator()

virtual PK_MessageAccumulator * PK_Signer::NewSignatureAccumulator ( RandomNumberGenerator & rng) const
pure virtual

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

Parameters
rnga RandomNumberGenerator derived class
Returns
a pointer to a PK_MessageAccumulator

NewSignatureAccumulator() can be used with all signing methods. Sign() will automatically delete the accumulator pointer. The caller is responsible for deletion if a method is called that takes a reference.

Implemented in ed25519Signer.

◆ InputRecoverableMessage()

virtual void PK_Signer::InputRecoverableMessage ( PK_MessageAccumulator & messageAccumulator,
const byte * recoverableMessage,
size_t recoverableMessageLength ) const
pure virtual

Input a recoverable message to an accumulator.

Parameters
messageAccumulatora reference to a PK_MessageAccumulator
recoverableMessagea pointer to the recoverable message part to be signed
recoverableMessageLengththe size of the recoverable message part

Implemented in TF_SignerBase, DL_SignerBase< T >, and ed25519Signer.

◆ Sign()

virtual size_t PK_Signer::Sign ( RandomNumberGenerator & rng,
PK_MessageAccumulator * messageAccumulator,
byte * signature ) const
virtual

Sign and delete the messageAccumulator.

Parameters
rnga RandomNumberGenerator derived class
messageAccumulatora pointer to a PK_MessageAccumulator derived class
signaturea block of bytes for the signature
Returns
actual signature length

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

Precondition
COUNTOF(signature) == MaxSignatureLength()

◆ SignAndRestart()

virtual size_t PK_Signer::SignAndRestart ( RandomNumberGenerator & rng,
PK_MessageAccumulator & messageAccumulator,
byte * signature,
bool restart = true ) const
pure virtual

Sign and restart messageAccumulator.

Parameters
rnga RandomNumberGenerator derived class
messageAccumulatora pointer to a PK_MessageAccumulator derived class
signaturea block of bytes for the signature
restartflag indicating whether the messageAccumulator should be restarted
Returns
actual signature length
Precondition
COUNTOF(signature) == MaxSignatureLength()

Implemented in DL_SignerBase< T >, ed25519Signer, and TF_SignerBase.

◆ SignMessage()

virtual size_t PK_Signer::SignMessage ( RandomNumberGenerator & rng,
const byte * message,
size_t messageLen,
byte * signature ) const
virtual

Sign a message.

Parameters
rnga RandomNumberGenerator derived class
messagea pointer to the message
messageLenthe size of the message to be signed
signaturea block of bytes for the signature
Returns
actual signature length
Precondition
COUNTOF(signature) == MaxSignatureLength()

◆ SignMessageWithRecovery()

virtual size_t PK_Signer::SignMessageWithRecovery ( RandomNumberGenerator & rng,
const byte * recoverableMessage,
size_t recoverableMessageLength,
const byte * nonrecoverableMessage,
size_t nonrecoverableMessageLength,
byte * signature ) const
virtual

Sign a recoverable message.

Parameters
rnga RandomNumberGenerator derived class
recoverableMessagea pointer to the recoverable message part to be signed
recoverableMessageLengththe size of the recoverable message part
nonrecoverableMessagea pointer to the non-recoverable message part to be signed
nonrecoverableMessageLengththe size of the non-recoverable message part
signaturea block of bytes for the signature
Returns
actual signature length
Precondition
COUNTOF(signature) == MaxSignatureLength(recoverableMessageLength)

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