Fabcoin Core  0.16.2
P2P Digital Currency
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:
[legend]
Collaboration diagram for PK_Signer:
[legend]

Public Member Functions

virtual ~PK_Signer ()
 
virtual PK_MessageAccumulatorNewSignatureAccumulator (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 ~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
virtual ~PrivateKeyAlgorithm ()
 
CryptoMaterialAccessMaterial ()
 Retrieves a reference to a Private Key. More...
 
const CryptoMaterialGetMaterial () const
 Retrieves a reference to a Private Key. More...
 
virtual PrivateKeyAccessPrivateKey ()=0
 Retrieves a reference to a Private Key. More...
 
virtual const PrivateKeyGetPrivateKey () const
 Retrieves a reference to a Private 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 signers.

Definition at line 2527 of file cryptlib.h.

Constructor & Destructor Documentation

virtual PK_Signer::~PK_Signer ( )
inlinevirtual

Definition at line 2530 of file cryptlib.h.

Member Function Documentation

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 DL_SignerBase< T >, DL_SignerBase< SCHEME_OPTIONS::Element >, and TF_SignerBase.

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 autimatically delete the accumulator pointer. The caller is responsible for deletion if a method is called that takes a reference.

Implemented in DL_SignerImpl< SCHEME_OPTIONS >, and TF_ObjectImplBase< TF_SignerBase, SCHEME_OPTIONS, SCHEME_OPTIONS::PrivateKey >.

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()

Definition at line 878 of file cryptlib.cpp.

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 >, DL_SignerBase< SCHEME_OPTIONS::Element >, and TF_SignerBase.

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()

Definition at line 884 of file cryptlib.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

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)

Definition at line 891 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: