Crypto++ 8.6 Free C++ class library of cryptographic schemes

Public Member Functions | List of all members
PK_Signer Class Referenceabstract

Interface for public-key signers. More...

Inheritance diagram for PK_Signer:

## Public Member Functions
virtual PK_MessageAccumulator * | NewSignatureAccumulator (RandomNumberGenerator &rng) const =0
| Create a new HashTransformation to accumulate the message to be signed. More...
virtual void | InputRecoverableMessage (PK_MessageAccumulator &messageAccumulator, const byte *recoverableMessage, size_t recoverableMessageLength) const =0
| Input a recoverable message to an accumulator. More...
virtual size_t | Sign (RandomNumberGenerator &rng, PK_MessageAccumulator *messageAccumulator, byte *signature) const
| Sign and delete the messageAccumulator. More...
virtual size_t | SignAndRestart (RandomNumberGenerator &rng, PK_MessageAccumulator &messageAccumulator, byte *signature, bool restart=true) const =0
| Sign and restart messageAccumulator. More...
virtual size_t | SignMessage (RandomNumberGenerator &rng, const byte *message, size_t messageLen, byte *signature) const
| Sign a message. More...
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. More...
Public Member Functions inherited from 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 PrivateKeyAlgorithm
CryptoMaterial & | AccessMaterial ()
| Retrieves a reference to a Private Key. More...
const CryptoMaterial & | GetMaterial () const
| Retrieves a reference to a Private Key. More...
virtual PrivateKey & | AccessPrivateKey ()=0
| Retrieves a reference to a Private Key. More...
virtual const PrivateKey & | GetPrivateKey () const
| Retrieves a reference to a Private Key. More...
Public Member Functions inherited from Algorithm
| Algorithm (bool checkSelfTestStatus=true)
| Interface for all crypto algorithms. More...
virtual std::string | AlgorithmName () const
| Provides the name of this algorithm. More...
virtual std::string | AlgorithmProvider () const
| Retrieve the provider of this algorithm. More...
Public Member Functions inherited from Clonable
virtual Clonable * | Clone () const
| Copies this object. More...

## Detailed Description

Interface for public-key signers.

Definition at line 2881 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

  rng | a 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

  messageAccumulator | a reference to a PK_MessageAccumulator
  recoverableMessage | a pointer to the recoverable message part to be signed
  recoverableMessageLength | the size of the recoverable message part

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

## ◆ Sign()

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

Sign and delete the messageAccumulator.

Parameters

  rng | a RandomNumberGenerator derived class
  messageAccumulator | a pointer to a PK_MessageAccumulator derived class
  signature | a 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

  rng | a RandomNumberGenerator derived class
  messageAccumulator | a pointer to a PK_MessageAccumulator derived class
  signature | a block of bytes for the signature
  restart | flag indicating whether the messageAccumulator should be restarted

Returns
  actual signature length

Precondition
  `COUNTOF(signature) == MaxSignatureLength()`

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

## ◆ SignMessage()

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

Sign a message.

Parameters

  rng | a RandomNumberGenerator derived class
  message | a pointer to the message
  messageLen | the size of the message to be signed
  signature | a 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

  rng | a RandomNumberGenerator derived class
  recoverableMessage | a pointer to the recoverable message part to be signed
  recoverableMessageLength | the size of the recoverable message part
  nonrecoverableMessage | a pointer to the non-recoverable message part to be signed
  nonrecoverableMessageLength | the size of the non-recoverable message part
  signature | a 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:

- cryptlib.h