Crypto++ 8.7
Free C++ class library of cryptographic schemes
|
ElGamal key agreement and encryption schemes keys. More...
#include <elgamal.h>
Public Types | |
typedef DL_CryptoKeys_ElGamal::GroupParameters | GroupParameters |
Implements DL_GroupParameters interface. More... | |
typedef DL_PrivateKey_ElGamal< DL_CryptoKeys_ElGamal::PrivateKey > | PrivateKey |
Implements DL_PrivateKey interface. More... | |
typedef DL_PublicKey_ElGamal< DL_CryptoKeys_ElGamal::PublicKey > | PublicKey |
Implements DL_PublicKey interface. More... | |
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.
Implements DL_GroupParameters interface.
Implements DL_PrivateKey interface.
Implements DL_PublicKey interface.