Crypto++  5.6.5
Free C++ class library of cryptographic schemes
Public Member Functions | List of all members
DL_ElgamalLikeSignatureAlgorithm< T > Class Template Referenceabstract

Interface for Elgamal-like signature algorithms. More...

+ Inheritance diagram for DL_ElgamalLikeSignatureAlgorithm< T >:

Public Member Functions

virtual void Sign (const DL_GroupParameters< T > &params, const Integer &privateKey, const Integer &k, const Integer &e, Integer &r, Integer &s) const =0
 Sign a message using a private key. More...
 
virtual bool Verify (const DL_GroupParameters< T > &params, const DL_PublicKey< T > &publicKey, const Integer &e, const Integer &r, const Integer &s) const =0
 Verify a message using a public key. More...
 
virtual Integer RecoverPresignature (const DL_GroupParameters< T > &params, const DL_PublicKey< T > &publicKey, const Integer &r, const Integer &s) const
 Recover a Presignature. More...
 
virtual size_t RLen (const DL_GroupParameters< T > &params) const
 Retrieve R length. More...
 
virtual size_t SLen (const DL_GroupParameters< T > &params) const
 Retrieve S length. More...
 
virtual bool IsDeterministic () const
 Signature scheme flag. More...
 

Detailed Description

template<class T>
class DL_ElgamalLikeSignatureAlgorithm< T >

Interface for Elgamal-like signature algorithms.

Template Parameters
TField element

Definition at line 1381 of file pubkey.h.

Member Function Documentation

◆ Sign()

template<class T>
virtual void DL_ElgamalLikeSignatureAlgorithm< T >::Sign ( const DL_GroupParameters< T > &  params,
const Integer privateKey,
const Integer k,
const Integer e,
Integer r,
Integer s 
) const
pure virtual

Sign a message using a private key.

Parameters
paramsGroupParameters
privateKeyprivate key
ksigning exponent
eencoded message
rr part of signature
ss part of signature

Implemented in DL_Algorithm_NR< T >, DL_Algorithm_NR< EC::Point >, DL_Algorithm_GDSA_ISO15946< T >, DL_Algorithm_GDSA_ISO15946< EC::Point >, DL_Algorithm_LUC_HMP, DL_Algorithm_GDSA< T >, and DL_Algorithm_GDSA< EC::Point >.

◆ Verify()

template<class T>
virtual bool DL_ElgamalLikeSignatureAlgorithm< T >::Verify ( const DL_GroupParameters< T > &  params,
const DL_PublicKey< T > &  publicKey,
const Integer e,
const Integer r,
const Integer s 
) const
pure virtual

Verify a message using a public key.

Parameters
paramsGroupParameters
publicKeypublic key
eencoded message
rr part of signature
ss part of signature

Implemented in DL_Algorithm_NR< T >, DL_Algorithm_NR< EC::Point >, DL_Algorithm_GDSA_ISO15946< T >, DL_Algorithm_GDSA_ISO15946< EC::Point >, DL_Algorithm_LUC_HMP, DL_Algorithm_GDSA< T >, and DL_Algorithm_GDSA< EC::Point >.

◆ RecoverPresignature()

template<class T>
virtual Integer DL_ElgamalLikeSignatureAlgorithm< T >::RecoverPresignature ( const DL_GroupParameters< T > &  params,
const DL_PublicKey< T > &  publicKey,
const Integer r,
const Integer s 
) const
inlinevirtual

Recover a Presignature.

Parameters
paramsGroupParameters
publicKeypublic key
rr part of signature
ss part of signature

Definition at line 1408 of file pubkey.h.

◆ RLen()

template<class T>
virtual size_t DL_ElgamalLikeSignatureAlgorithm< T >::RLen ( const DL_GroupParameters< T > &  params) const
inlinevirtual

Retrieve R length.

Parameters
paramsGroupParameters

Reimplemented in DL_Algorithm_LUC_HMP.

Definition at line 1417 of file pubkey.h.

◆ SLen()

template<class T>
virtual size_t DL_ElgamalLikeSignatureAlgorithm< T >::SLen ( const DL_GroupParameters< T > &  params) const
inlinevirtual

Retrieve S length.

Parameters
paramsGroupParameters

Definition at line 1422 of file pubkey.h.

◆ IsDeterministic()

template<class T>
virtual bool DL_ElgamalLikeSignatureAlgorithm< T >::IsDeterministic ( ) const
inlinevirtual

Signature scheme flag.

Returns
true if the signature scheme is deterministic, false otherwise

IsDeterministic() is provided for DL signers. It is used by RFC 6979 signature schemes.

Reimplemented in DL_Algorithm_DSA_RFC6979< T, H >, and DL_Algorithm_DSA_RFC6979< EC::Point, H >.

Definition at line 1428 of file pubkey.h.


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