PK_SignatureScheme Class Reference

#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 > TwoBases< TF_SignerBase, PrivateKeyCopier< SCHEME_OPTIONS::Keys > > AlgorithmImpl< DL_VerifierBase< SCHEME_OPTIONS::Element >, SCHEME_OPTIONS::AlgorithmInfo > TwoBases< TF_VerifierBase, PublicKeyCopier< SCHEME_OPTIONS::Keys > > DL_ObjectImplBase< DL_SignerBase< SCHEME_OPTIONS::Element >, SCHEME_OPTIONS, SCHEME_OPTIONS::PrivateKey > AlgorithmImpl< TwoBases< TF_SignerBase, PrivateKeyCopier< SCHEME_OPTIONS::Keys > >, SCHEME_OPTIONS::AlgorithmInfo > DL_ObjectImplBase< DL_VerifierBase< SCHEME_OPTIONS::Element >, SCHEME_OPTIONS, SCHEME_OPTIONS::PublicKey > AlgorithmImpl< TwoBases< TF_VerifierBase, PublicKeyCopier< SCHEME_OPTIONS::Keys > >, SCHEME_OPTIONS::AlgorithmInfo > DL_ObjectImpl< DL_SignerBase< SCHEME_OPTIONS::Element >, SCHEME_OPTIONS, SCHEME_OPTIONS::PrivateKey > TF_ObjectImplBase< TwoBases< TF_SignerBase, PrivateKeyCopier< SCHEME_OPTIONS::Keys > >, SCHEME_OPTIONS, PrivateKeyCopier< SCHEME_OPTIONS::Keys >::KeyClass > DL_ObjectImpl< DL_VerifierBase< SCHEME_OPTIONS::Element >, SCHEME_OPTIONS, SCHEME_OPTIONS::PublicKey > TF_ObjectImplBase< TwoBases< TF_VerifierBase, PublicKeyCopier< SCHEME_OPTIONS::Keys > >, SCHEME_OPTIONS, PublicKeyCopier< SCHEME_OPTIONS::Keys >::KeyClass > DL_PrivateObjectImpl< DL_SignerBase< SCHEME_OPTIONS::Element >, SCHEME_OPTIONS > TF_ObjectImpl< TF_SignerBase, SCHEME_OPTIONS, PrivateKeyCopier< SCHEME_OPTIONS::Keys > > DL_PublicObjectImpl< DL_VerifierBase< SCHEME_OPTIONS::Element >, SCHEME_OPTIONS > TF_ObjectImpl< TF_VerifierBase, SCHEME_OPTIONS, PublicKeyCopier< SCHEME_OPTIONS::Keys > > DL_SignerImpl< SCHEME_OPTIONS > TF_SignerImpl< SCHEME_OPTIONS > DL_VerifierImpl< SCHEME_OPTIONS > TF_VerifierImpl< SCHEME_OPTIONS > 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 1202 of file cryptlib.h.

Public Member Functions

virtual ~PK_SignatureScheme ()
virtual unsigned int SignatureLength () const =0
 signature length if it only depends on the key, otherwise 0
virtual unsigned int MaxSignatureLength (unsigned int recoverablePartLength=0) const
 maximum signature length produced for a given length of recoverable message part
virtual unsigned int MaxRecoverableLength () const =0
 length of longest message that can be recovered, or 0 if this signature scheme does not support message recovery
virtual unsigned int MaxRecoverableLengthFromSignatureLength (unsigned int 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 &

Implemented in TF_SignatureSchemeBase< PK_Verifier, TF_Base< TrapdoorFunction, PK_SignatureMessageEncodingMethod > >, TF_SignatureSchemeBase< PK_Signer, TF_Base< RandomizedTrapdoorFunctionInverse, PK_SignatureMessageEncodingMethod > >, 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 > >, and DL_SignatureSchemeBase< PK_Signer, DL_PrivateKey< T > >.


The documentation for this class was generated from the following file:
Generated on Fri Dec 16 03:04:28 2005 for Crypto++ by  doxygen 1.4.5