Crypto++ 8.7
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...

#include <pubkey.h>

+ 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 type or class

Field element T can be Integer, ECP or EC2N.

Definition at line 1406 of file pubkey.h.

Constructor & Destructor Documentation

◆ ~DL_ElgamalLikeSignatureAlgorithm()

template<class T >
virtual DL_ElgamalLikeSignatureAlgorithm< T >::~DL_ElgamalLikeSignatureAlgorithm ( )
inlinevirtual

Definition at line 1409 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_GDSA< EC::Point >, DL_Algorithm_GDSA_ISO15946< EC::Point >, DL_Algorithm_NR< EC::Point >, DL_Algorithm_LUC_HMP, DL_Algorithm_GDSA< T >, DL_Algorithm_GDSA_ISO15946< T >, and DL_Algorithm_NR< T >.

◆ 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_GDSA< EC::Point >, DL_Algorithm_GDSA_ISO15946< EC::Point >, DL_Algorithm_NR< EC::Point >, DL_Algorithm_LUC_HMP, DL_Algorithm_GDSA< T >, DL_Algorithm_GDSA_ISO15946< T >, and DL_Algorithm_NR< T >.

◆ 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 1433 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 1442 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 1447 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 1453 of file pubkey.h.


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