ChaChaTLS Struct Reference

IETF ChaCha20 stream cipher. More...

`#include <chacha.h>`

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.
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.
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.
static const int | MIN_KEYLENGTH
| The minimum key length used by the algorithm provided as a constant.
static const int | MAX_KEYLENGTH
| The maximum key length used by the algorithm provided as a constant.
static const int | DEFAULT_KEYLENGTH
| The default key length used by the algorithm provided as a constant.
static const int | IV_REQUIREMENT
| The default IV requirements for the algorithm provided as a constant.
static const int | IV_LENGTH
| The default IV length used by the algorithm provided as a constant.
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.

## Member Typedef Documentation

## Encryption

typedef SymmetricCipherFinal<ConcretePolicyHolder<ChaChaTLS_Policy, AdditiveCipherTemplate<> >, ChaChaTLS_Info > ChaChaTLS::Encryption

ChaCha-TLS Encryption.

Definition at line 157 of file chacha.h.

## Decryption

typedef Encryption ChaChaTLS::Decryption

ChaCha-TLS Decryption.

Definition at line 159 of file chacha.h.

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

- chacha.h