Crypto++  8.8
Free C++ class library of cryptographic schemes
Classes | Public Member Functions | List of all members
PK_SignatureScheme Class Referenceabstract

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

+ Inheritance diagram for PK_SignatureScheme:

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 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 2789 of file cryptlib.h.

Member Function Documentation

◆ SignatureLength()

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 ed25519Verifier, ed25519Signer, DL_SignatureSchemeBase< PK_Verifier, DL_PublicKey< T > >, and DL_SignatureSchemeBase< PK_Signer, DL_PrivateKey< T > >.

◆ MaxSignatureLength()

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 2822 of file cryptlib.h.

◆ MaxRecoverableLength()

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 ed25519Verifier, ed25519Signer, DL_SignatureSchemeBase< PK_Verifier, DL_PublicKey< T > >, and DL_SignatureSchemeBase< PK_Signer, DL_PrivateKey< T > >.

◆ MaxRecoverableLengthFromSignatureLength()

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 ed25519Verifier, ed25519Signer, DL_SignatureSchemeBase< PK_Verifier, DL_PublicKey< T > >, and DL_SignatureSchemeBase< PK_Signer, DL_PrivateKey< T > >.

◆ IsProbabilistic()

virtual bool PK_SignatureScheme::IsProbabilistic ( ) const
pure virtual

Determines whether a signature scheme requires a random number generator.

Returns
true if the signature scheme requires a RandomNumberGenerator() to sign

if IsProbabilistic() returns false, then NullRNG() can be passed to functions that take RandomNumberGenerator().

Implemented in ed25519Verifier, ed25519Signer, DL_SignatureSchemeBase< PK_Verifier, DL_PublicKey< T > >, and DL_SignatureSchemeBase< PK_Signer, DL_PrivateKey< T > >.

◆ AllowNonrecoverablePart()

virtual bool PK_SignatureScheme::AllowNonrecoverablePart ( ) const
pure virtual

Determines whether the non-recoverable message part can be signed.

Returns
true if the non-recoverable message part can be signed

Implemented in ed25519Verifier, ed25519Signer, DL_SignatureSchemeBase< PK_Verifier, DL_PublicKey< T > >, and DL_SignatureSchemeBase< PK_Signer, DL_PrivateKey< T > >.

◆ SignatureUpfront()

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 2853 of file cryptlib.h.

◆ RecoverablePartFirst()

virtual bool PK_SignatureScheme::RecoverablePartFirst ( ) const
pure virtual

Determines whether the recoverable part must be input before the non-recoverable part.

Returns
true if the recoverable part must be input before the non-recoverable part during signing

RecoverablePartFirst() determines whether you must input the recoverable part before the non-recoverable part during signing

Implemented in ed25519Verifier, ed25519Signer, DL_SignatureSchemeBase< PK_Verifier, DL_PublicKey< T > >, and DL_SignatureSchemeBase< PK_Signer, DL_PrivateKey< T > >.


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