29#ifndef CRYPTOPP_CHACHA_H
30#define CRYPTOPP_CHACHA_H
72 std::string AlgorithmName()
const;
75 CRYPTOPP_CONSTANT(ROUNDS = 20);
77 unsigned int m_rounds;
129 std::string AlgorithmName()
const;
133 unsigned int m_counter;
135 CRYPTOPP_CONSTANT(KEY = 16);
136 CRYPTOPP_CONSTANT(CTR = 24);
195 std::string AlgorithmName()
const;
199 unsigned int m_counter, m_rounds;
200 CRYPTOPP_CONSTANT(ROUNDS = 20);
201 CRYPTOPP_CONSTANT(KEY = 16);
ChaCha stream cipher implementation.
IETF ChaCha20 stream cipher implementation.
Inherited by keyed algorithms with fixed key length.
Inherited by algorithms with fixed number of rounds.
static const int ROUNDS
The number of rounds for the algorithm provided as a constant.
Interface for retrieving values given their names.
Interface for algorithms that take byte strings as keys.
SymmetricCipher implementation.
Inherited by keyed algorithms with variable key length.
IETF XChaCha20 stream cipher implementation.
word64 lword
Large word type.
Crypto++ library namespace.
const char * IV()
ConstByteArrayParameter, also accepts const byte * for backwards compatibility.
Classes and functions for secure memory allocations.
Classes for implementing stream ciphers.
KeystreamOperation
Keystream operation flags.
virtual std::string AlgorithmProvider() const
Retrieve the provider of this algorithm.
virtual unsigned int GetOptimalBlockSize() const
Provides number of ideal bytes to process.
virtual void SeekToIteration(lword iterationCount)
Seeks to a random position in the stream.
virtual void CipherSetKey(const NameValuePairs ¶ms, const byte *key, size_t length)=0
Key the cipher.
virtual bool CipherIsRandomAccess() const =0
Flag indicating random access.
virtual void CipherResynchronize(byte *keystreamBuffer, const byte *iv, size_t length)
Resynchronize the cipher.
Base class for additive stream ciphers.
unsigned int GetAlignment() const
Provides data alignment requirements.
virtual void OperateKeystream(KeystreamOperation operation, byte *output, const byte *input, size_t iterationCount)=0
Operates the keystream.
ChaCha stream cipher information.
static const char * StaticAlgorithmName()
The algorithm name.
SymmetricCipherFinal< ConcretePolicyHolder< ChaCha_Policy, AdditiveCipherTemplate<> >, ChaCha_Info > Encryption
ChaCha Encryption.
Encryption Decryption
ChaCha Decryption.
IETF ChaCha20 stream cipher information.
static const char * StaticAlgorithmName()
The algorithm name.
IETF ChaCha20 stream cipher.
SymmetricCipherFinal< ConcretePolicyHolder< ChaChaTLS_Policy, AdditiveCipherTemplate<> >, ChaChaTLS_Info > Encryption
ChaCha-TLS Encryption.
Encryption Decryption
ChaCha-TLS Decryption.
Provides Encryption and Decryption typedefs used by derived classes to implement a symmetric cipher.
IETF XChaCha20 stream cipher information.
static const char * StaticAlgorithmName()
The algorithm name.
IETF XChaCha20 stream cipher.
SymmetricCipherFinal< ConcretePolicyHolder< XChaCha20_Policy, AdditiveCipherTemplate<> >, XChaCha20_Info > Encryption
XChaCha Encryption.
Encryption Decryption
XChaCha Decryption.