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

Interface for public-key signers and verifiers. More...

#include <cryptlib.h>

Inheritance diagram for PK_SignatureScheme:
[legend]

Classes

class  InvalidKeyLength
 Exception throw when the private or public key has a length that can't be used. More...
 
class  KeyTooShort
 Exception throw when the private or public key is too short to sign or verify. More...
 

Public Member Functions

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...
 

Detailed Description

Interface for public-key signers and verifiers.

This class provides an interface common to signers and verifiers for querying scheme properties

See also
DL_SignatureSchemeBase, TF_SignatureSchemeBase, DL_SignerBase, TF_SignerBase

Definition at line 2431 of file cryptlib.h.

Constructor & Destructor Documentation

virtual PK_SignatureScheme::~PK_SignatureScheme ( )
inlinevirtual

Definition at line 2454 of file cryptlib.h.

Member Function Documentation

virtual bool PK_SignatureScheme::AllowNonrecoverablePart ( ) const
pure virtual
virtual bool PK_SignatureScheme::IsProbabilistic ( ) const
pure virtual
virtual size_t PK_SignatureScheme::MaxRecoverableLength ( ) const
pure virtual

Provides the length of longest message that can be recovered.

Returns
the length of longest message that can be recovered, in bytes

MaxRecoverableLength() returns the length of longest message that can be recovered, or 0 if this signature scheme does not support message recovery.

Implemented in DL_SignatureSchemeBase< PK_Signer, DL_PrivateKey< SCHEME_OPTIONS::Element > >, DL_SignatureSchemeBase< PK_Verifier, DL_PublicKey< SCHEME_OPTIONS::Element > >, DL_SignatureSchemeBase< PK_Verifier, DL_PublicKey< T > >, DL_SignatureSchemeBase< PK_Signer, DL_PrivateKey< T > >, TF_SignatureSchemeBase< PK_Verifier, TF_Base< TrapdoorFunction, PK_SignatureMessageEncodingMethod > >, and TF_SignatureSchemeBase< PK_Signer, TF_Base< RandomizedTrapdoorFunctionInverse, PK_SignatureMessageEncodingMethod > >.

Here is the caller graph for this function:

virtual size_t PK_SignatureScheme::MaxRecoverableLengthFromSignatureLength ( size_t  signatureLength) const
pure virtual

Provides the length of longest message that can be recovered from a signature of given length.

Parameters
signatureLengththe length of the signature, in bytes
Returns
the length of longest message that can be recovered from a signature of given length, in bytes

MaxRecoverableLengthFromSignatureLength() returns the length of longest message that can be recovered from a signature of given length, or 0 if this signature scheme does not support message recovery.

Implemented in DL_SignatureSchemeBase< PK_Signer, DL_PrivateKey< SCHEME_OPTIONS::Element > >, DL_SignatureSchemeBase< PK_Verifier, DL_PublicKey< SCHEME_OPTIONS::Element > >, DL_SignatureSchemeBase< PK_Verifier, DL_PublicKey< T > >, DL_SignatureSchemeBase< PK_Signer, DL_PrivateKey< T > >, TF_SignatureSchemeBase< PK_Verifier, TF_Base< TrapdoorFunction, PK_SignatureMessageEncodingMethod > >, and TF_SignatureSchemeBase< PK_Signer, TF_Base< RandomizedTrapdoorFunctionInverse, PK_SignatureMessageEncodingMethod > >.

Here is the caller graph for this function:

virtual size_t PK_SignatureScheme::MaxSignatureLength ( size_t  recoverablePartLength = 0) const
inlinevirtual

Provides the maximum signature length produced given the length of the recoverable message part.

Parameters
recoverablePartLengththe length of the recoverable message part, in bytes
Returns
the maximum signature length produced for a given length of recoverable message part, in bytes

MaxSignatureLength() returns the maximum signature length produced given the length of the recoverable message part.

Definition at line 2466 of file cryptlib.h.

Here is the caller graph for this function:

virtual bool PK_SignatureScheme::RecoverablePartFirst ( ) const
pure virtual
virtual size_t PK_SignatureScheme::SignatureLength ( ) const
pure virtual

Provides the signature length if it only depends on the key.

Returns
the signature length if it only depends on the key, in bytes

SignatureLength() returns the signature length if it only depends on the key, otherwise 0.

Implemented in DL_SignatureSchemeBase< PK_Signer, DL_PrivateKey< SCHEME_OPTIONS::Element > >, DL_SignatureSchemeBase< PK_Verifier, DL_PublicKey< SCHEME_OPTIONS::Element > >, DL_SignatureSchemeBase< PK_Verifier, DL_PublicKey< T > >, DL_SignatureSchemeBase< PK_Signer, DL_PrivateKey< T > >, TF_SignatureSchemeBase< PK_Verifier, TF_Base< TrapdoorFunction, PK_SignatureMessageEncodingMethod > >, and TF_SignatureSchemeBase< PK_Signer, TF_Base< RandomizedTrapdoorFunctionInverse, PK_SignatureMessageEncodingMethod > >.

Here is the caller graph for this function:

virtual bool PK_SignatureScheme::SignatureUpfront ( ) const
inlinevirtual

Determines whether the signature must be input before the message.

Returns
true if the signature must be input before the message during verifcation

if SignatureUpfront() returns true, then you must input the signature before the message during verification. Otherwise you can input the signature at anytime.

Definition at line 2497 of file cryptlib.h.

Here is the caller graph for this function:


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