Classes | Public Member Functions

PK_SignatureScheme Class Reference

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

#include <cryptlib.h>

Inheritance diagram for PK_SignatureScheme:
PK_Signer PK_Verifier DL_SignatureSchemeBase< PK_Signer, DL_PrivateKey< SCHEME_OPTIONS::Element > > DL_SignatureSchemeBase< PK_Signer, DL_PrivateKey< T > > TF_SignatureSchemeBase< PK_Signer, TF_Base< RandomizedTrapdoorFunctionInverse, PK_SignatureMessageEncodingMethod > > DL_SignatureSchemeBase< PK_Verifier, DL_PublicKey< SCHEME_OPTIONS::Element > > DL_SignatureSchemeBase< PK_Verifier, DL_PublicKey< T > > TF_SignatureSchemeBase< PK_Verifier, TF_Base< TrapdoorFunction, PK_SignatureMessageEncodingMethod > > DL_SignerBase< SCHEME_OPTIONS::Element > DL_SignerBase< T > TF_SignerBase DL_VerifierBase< SCHEME_OPTIONS::Element > DL_VerifierBase< T > TF_VerifierBase AlgorithmImpl< DL_SignerBase< SCHEME_OPTIONS::Element >, SCHEME_OPTIONS::AlgorithmInfo > AlgorithmImpl< TF_SignerBase, SCHEME_OPTIONS::AlgorithmInfo > AlgorithmImpl< DL_VerifierBase< SCHEME_OPTIONS::Element >, SCHEME_OPTIONS::AlgorithmInfo > AlgorithmImpl< TF_VerifierBase, SCHEME_OPTIONS::AlgorithmInfo > DL_ObjectImplBase< DL_SignerBase< SCHEME_OPTIONS::Element >, SCHEME_OPTIONS, SCHEME_OPTIONS::PrivateKey > TF_ObjectImplBase< TF_SignerBase, SCHEME_OPTIONS, SCHEME_OPTIONS::PrivateKey > DL_ObjectImplBase< DL_VerifierBase< SCHEME_OPTIONS::Element >, SCHEME_OPTIONS, SCHEME_OPTIONS::PublicKey > TF_ObjectImplBase< TF_VerifierBase, SCHEME_OPTIONS, SCHEME_OPTIONS::PublicKey > DL_ObjectImpl< DL_SignerBase< SCHEME_OPTIONS::Element >, SCHEME_OPTIONS, SCHEME_OPTIONS::PrivateKey > TF_ObjectImpl< TF_SignerBase, SCHEME_OPTIONS, SCHEME_OPTIONS::PrivateKey > DL_ObjectImpl< DL_VerifierBase< SCHEME_OPTIONS::Element >, SCHEME_OPTIONS, SCHEME_OPTIONS::PublicKey > TF_ObjectImpl< TF_VerifierBase, SCHEME_OPTIONS, SCHEME_OPTIONS::PublicKey > DL_SignerImpl< SCHEME_OPTIONS > TF_SignerImpl< SCHEME_OPTIONS > DL_VerifierImpl< SCHEME_OPTIONS > TF_VerifierImpl< SCHEME_OPTIONS >

List of all members.


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

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

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

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: