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.
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.
virtual Integer | RecoverPresignature (const DL_GroupParameters< T > &params, const DL_PublicKey< T > &publicKey, const Integer &r, const Integer &s) const
| Recover a Presignature.
virtual size_t | RLen (const DL_GroupParameters< T > &params) const
| Retrieve R length.
virtual size_t | SLen (const DL_GroupParameters< T > &params) const
| Retrieve S length.
virtual bool | IsDeterministic () const
| Signature scheme flag.

## Detailed Description

template<class T>
class DL_ElgamalLikeSignatureAlgorithm< T >

Interface for Elgamal-like signature algorithms.

Template Parameters

  T | Field 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 | ( |  | ) |

inline virtual

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

  params | GroupParameters
  privateKey | private key
  k | signing exponent
  e | encoded message
  r | r part of signature
  s | s part of signature

Implemented in DL_Algorithm_GDSA< T >, DL_Algorithm_GDSA< EC::Point >, DL_Algorithm_GDSA_ISO15946< T >, DL_Algorithm_GDSA_ISO15946< EC::Point >, DL_Algorithm_LUC_HMP, DL_Algorithm_NR< T >, and DL_Algorithm_NR< 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

  params | GroupParameters
  publicKey | public key
  e | encoded message
  r | r part of signature
  s | s part of signature

Implemented in DL_Algorithm_GDSA< T >, DL_Algorithm_GDSA< EC::Point >, DL_Algorithm_GDSA_ISO15946< T >, DL_Algorithm_GDSA_ISO15946< EC::Point >, DL_Algorithm_LUC_HMP, DL_Algorithm_NR< T >, and DL_Algorithm_NR< 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

inline virtual

Recover a Presignature.

Parameters

  params | GroupParameters
  publicKey | public key
  r | r part of signature
  s | s 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

inline virtual

Retrieve R length.

Parameters

  params | GroupParameters

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

inline virtual

Retrieve S length.

Parameters

  params | GroupParameters

Definition at line 1447 of file pubkey.h.

## IsDeterministic()

template<class T>

virtual bool DL_ElgamalLikeSignatureAlgorithm< T >::IsDeterministic | ( |  | ) | const

inline virtual

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:

- pubkey.h