Crypto++ 8.6 Free C++ class library of cryptographic schemes

Public Types | List of all members
ElGamalKeys Struct Reference

ElGamal key agreement and encryption schemes keys. More...

## Public Types
typedef DL_CryptoKeys_ElGamal::GroupParameters | GroupParameters
| Implements DL_GroupParameters interface.
typedef DL_PrivateKey_ElGamal< DL_CryptoKeys_ElGamal::PrivateKey > | PrivateKey
| Implements DL_PrivateKey interface.
typedef DL_PublicKey_ElGamal< DL_CryptoKeys_ElGamal::PublicKey > | PublicKey
| Implements DL_PublicKey interface.

## Detailed Description

ElGamal key agreement and encryption schemes keys.

ElGamalKeys provide the algorithm implementation ElGamal key agreement and encryption schemes.

The ElGamalKeys class used `DL_PrivateKey_GFP_OldFormat` and `DL_PublicKey_GFP_OldFormat` for the `PrivateKey` and `PublicKey` from about Crypto++ 1.0 through Crypto++ 5.6.5. At Crypto++ 6.0 the serialization format was cutover to standard PKCS8 and X509 encodings.

The ElGamalKeys class [mistakenly] used the OID for DSA from about Crypto++ 1.0 through Crypto++ 8.2. At Crypto++ 8.3 the OID was fixed and now uses ElGamal encryption, which is 1.3.14.7.2.1.1. If you need to `Load` an ElGamal key with the wrong OID then see ElGamal on the Crypto++ wiki.

At Crypto++ 8.6 ElGamalKeys were changed to use DL_CryptoKeys_ElGamal due to Issue 1069 and CVE-2021-40530. DL_CryptoKeys_ElGamal group parameters use the subgroup order, and not an estimated work factor.

See also
  Issue 876, Issue 567, Issue 1059

Since
  Crypto++ 1.0

Definition at line 261 of file elgamal.h.

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

- elgamal.h