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

Public Types | List of all members
ChaChaTLS Struct Reference

IETF ChaCha20 stream cipher. More...

Inheritance diagram for ChaChaTLS:

## Public Types
typedef SymmetricCipherFinal< ConcretePolicyHolder< ChaChaTLS_Policy, AdditiveCipherTemplate<> >, ChaChaTLS_Info > | Encryption
| ChaCha-TLS Encryption.
typedef Encryption | Decryption
| ChaCha-TLS Decryption.
Public Types inherited from SymmetricCipherDocumentation
typedef SymmetricCipher | Encryption
| implements the SymmetricCipher interface
typedef SymmetricCipher | Decryption
| implements the SymmetricCipher interface

## Additional Inherited Members
Static Public Member Functions inherited from ChaChaTLS_Info
static const char * | StaticAlgorithmName ()
| The algorithm name. More...
Static Public Member Functions inherited from FixedKeyLength< 32, SimpleKeyingInterface::UNIQUE_IV, 12 >
static size_t | StaticGetValidKeyLength (size_t keylength)
| The default key length for the algorithm provided by a static function. More...
Static Public Attributes inherited from FixedKeyLength< 32, SimpleKeyingInterface::UNIQUE_IV, 12 >
static const int | KEYLENGTH
| The default key length used by the algorithm provided as a constant. More...
static const int | MIN_KEYLENGTH
| The minimum key length used by the algorithm provided as a constant. More...
static const int | MAX_KEYLENGTH
| The maximum key length used by the algorithm provided as a constant. More...
static const int | DEFAULT_KEYLENGTH
| The default key length used by the algorithm provided as a constant. More...
static const int | IV_REQUIREMENT
| The default IV requirements for the algorithm provided as a constant. More...
static const int | IV_LENGTH
| The default IV length used by the algorithm provided as a constant. More...
Static Public Attributes inherited from FixedRounds< 20 >
static const int | ROUNDS
| The number of rounds for the algorithm provided as a constant.

## Detailed Description

IETF ChaCha20 stream cipher.

This is the IETF's variant of Bernstein's ChaCha from RFC 8439. IETF ChaCha is called ChaChaTLS in the Crypto++ library. It is _slightly_ different from the Bernstein implementation. ChaCha-TLS can be used for cipher suites `TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256`, `TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256`, and `TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256`.

See also
  RFC 8439, ChaCha20 and Poly1305 for IETF Protocols, How to handle block counter wrap in IETF's ChaCha algorithm? and Issue 790, ChaChaTLS results when counter block wraps.

Since
  Crypto++ 8.1

Definition at line 154 of file chacha.h.

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

- chacha.h