29#ifndef CRYPTOPP_CHACHA_H
30#define CRYPTOPP_CHACHA_H
35NAMESPACE_BEGIN(CryptoPP)
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;
134 CRYPTOPP_CONSTANT(ROUNDS = ChaChaTLS_Info::ROUNDS);
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.
bool CipherIsRandomAccess() const
Flag indicating random access.
IETF ChaCha20 stream cipher implementation.
bool CipherIsRandomAccess() const
Flag indicating random access.
Inherited by keyed algorithms with fixed key length.
Inherited by algorithms with fixed number of rounds.
Fixed size stack-based SecBlock with 16-byte alignment.
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.
bool CipherIsRandomAccess() const
Flag indicating random access.
word64 lword
Large word type.
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 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.