# PK_SignatureScheme Class Reference

`#include <cryptlib.h>`

Inheritance diagram for PK_SignatureScheme:

List of all members.

## Detailed Description

interface for public-key signers and verifiers

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

Definition at line 1298 of file cryptlib.h.

## Public Member Functions
virtual size_t | SignatureLength () const =0
| signature length if it only depends on the key, otherwise 0
virtual size_t | MaxSignatureLength (size_t recoverablePartLength=0) const
| maximum signature length produced for a given length of recoverable message part
virtual size_t | MaxRecoverableLength () const =0
| length of longest message that can be recovered, or 0 if this signature scheme does not support message recovery
virtual size_t | MaxRecoverableLengthFromSignatureLength (size_t signatureLength) const =0
| 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
virtual bool | IsProbabilistic () const =0
| requires a random number generator to sign
virtual bool | AllowNonrecoverablePart () const =0
| whether or not a non-recoverable message part can be signed
virtual bool | SignatureUpfront () const
| if this function returns true, during verification you must input the signature before the message, otherwise you can input it at anytime */
virtual bool | RecoverablePartFirst () const =0
| whether you must input the recoverable part before the non-recoverable part during signing
## Classes
class | InvalidKeyLength
| invalid key exception, may be thrown by any function in this class if the private or public key has a length that can't be used More...
class | KeyTooShort
| key too short exception, may be thrown by any function in this class if the private or public key is too short to sign or verify anything More...

## Member Function Documentation

virtual bool PK_SignatureScheme::IsProbabilistic | ( |  | ) | const`[pure virtual]`

requires a random number generator to sign

if this returns false, NullRNG() can be passed to functions that take RandomNumberGenerator &

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

- cryptlib.h