Crypto++  8.6
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_InfoEncryption
 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: