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

Static Public Member Functions | List of all members
ECIES< EC, HASH, COFACTOR_OPTION, DHAES_MODE, LABEL_OCTETS > Struct Template Reference

Elliptic Curve Integrated Encryption Scheme. More...

Inheritance diagram for ECIES< EC, HASH, COFACTOR_OPTION, DHAES_MODE, LABEL_OCTETS >:

## Static Public Member Functions
static const char * | StaticAlgorithmName ()

## Additional Inherited Members
Public Types inherited from DL_ES< DL_Keys_EC< EC >, DL_KeyAgreementAlgorithm_DH< EC::Point, NoCofactorMultiplication >, DL_KeyDerivationAlgorithm_P1363< EC::Point, true, P1363_KDF2< SHA1 > >, DL_EncryptionAlgorithm_Xor< HMAC< SHA1 >, true, false >, ECIES< EC > >
typedef PK_FinalTemplate< DL_DecryptorImpl< SchemeOptions > > | Decryptor
| implements PK_Decryptor interface
typedef PK_FinalTemplate< DL_EncryptorImpl< SchemeOptions > > | Encryptor
| implements PK_Encryptor interface
Public Types inherited from DL_Keys_EC< EC >
typedef DL_PublicKey_EC< EC > | PublicKey
typedef DL_PrivateKey_EC< EC > | PrivateKey

## Detailed Description

### template<class EC, class HASH = SHA1, class COFACTOR_OPTION = NoCofactorMultiplication, bool DHAES_MODE = true, bool LABEL_OCTETS = false>
struct ECIES< EC, HASH, COFACTOR_OPTION, DHAES_MODE, LABEL_OCTETS >

Elliptic Curve Integrated Encryption Scheme.

Template Parameters

  COFACTOR_OPTION | cofactor multiplication option
  HASH | HashTransformation derived class used for key derivation and MAC computation
  DHAES_MODE | flag indicating if the MAC includes additional context parameters such as u·V, v·U and label
  LABEL_OCTETS | flag indicating if the label size is specified in octets or bits

ECIES is an Elliptic Curve based Integrated Encryption Scheme (IES). The scheme combines a Key Encapsulation Method (KEM) with a Data Encapsulation Method (DEM) and a MAC tag. The scheme is IND-CCA2, which is a strong notion of security. You should prefer an Integrated Encryption Scheme over homegrown schemes.

If you desire an Integrated Encryption Scheme with Crypto++ 4.2 compatibility, then use the ECIES_P1363. If you desire an Integrated Encryption Scheme compatible with Bouncy Castle 1.54 and Botan 1.11 compatibility, then use the ECIES template class with `NoCofactorMultiplication`, `DHAES_MODE=true` and `LABEL_OCTETS=false`.

The default template parameters ensure compatibility with Bouncy Castle 1.54 and Botan 1.11. The combination of `IncompatibleCofactorMultiplication` and `DHAES_MODE=true` is recommended for best efficiency and security. SHA1 is used for compatibility reasons, but it can be changed if desired.

See also
  DLIES, ECIES_P1363, Elliptic Curve Integrated Encryption Scheme (ECIES), Martínez, Encinas, and Ávila's A Survey of the Elliptic Curve Integrated Encryption Schemes

Since
  Crypto++ 4.0, Crypto++ 5.7 for Bouncy Castle and Botan compatibility

Definition at line 608 of file eccrypto.h.

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

- eccrypto.h