Crypto++ 7.0 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 2635 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 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 > >, ed25519Verifier, and ed25519Signer.

## ◆ MaxSignatureLength()

virtual size_t PK_SignatureScheme::MaxSignatureLength | ( | size_t | recoverablePartLength = `0` | ) | const
| inline virtual

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

Parameters

  recoverablePartLength | the 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 2668 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 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 > >, ed25519Verifier, and ed25519Signer.

## ◆ 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

  signatureLength | the 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 > >, ed25519Verifier, and ed25519Signer.

## ◆ 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 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 > >, ed25519Verifier, and ed25519Signer.

## ◆ 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 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 > >, ed25519Verifier, and ed25519Signer.

## ◆ SignatureUpfront()

virtual bool PK_SignatureScheme::SignatureUpfront | ( |  | ) | const
| inline virtual

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 2699 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 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 > >, ed25519Verifier, and ed25519Signer.

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

- cryptlib.h