Crypto++
8.4
Free C++ class library of cryptographic schemes
|
Base class for additive stream ciphers. More...
Public Types | |
typedef WT | WordType |
Word type for the cipher. | |
Public Member Functions | |
unsigned int | GetBytesPerIteration () const |
Provides number of bytes operated upon during an iteration. More... | |
unsigned int | GetIterationsToBuffer () const |
Provides buffer size based on iterations. More... | |
bool | CanOperateKeystream () const |
Flag indicating. More... | |
virtual void | OperateKeystream (KeystreamOperation operation, byte *output, const byte *input, size_t iterationCount)=0 |
Operates the keystream. More... | |
![]() | |
virtual unsigned int | GetAlignment () const |
Provides data alignment requirements. More... | |
virtual unsigned int | GetOptimalBlockSize () const |
Provides number of ideal bytes to process. More... | |
virtual void | WriteKeystream (byte *keystream, size_t iterationCount) |
Generate the keystream. More... | |
virtual void | CipherSetKey (const NameValuePairs ¶ms, const byte *key, size_t length)=0 |
Key the cipher. More... | |
virtual void | CipherResynchronize (byte *keystreamBuffer, const byte *iv, size_t length) |
Resynchronize the cipher. More... | |
virtual bool | CipherIsRandomAccess () const =0 |
Flag indicating random access. More... | |
virtual void | SeekToIteration (lword iterationCount) |
Seeks to a random position in the stream. More... | |
virtual std::string | AlgorithmProvider () const |
Retrieve the provider of this algorithm. More... | |
Static Public Attributes | |
static const int | BYTES_PER_ITERATION = sizeof(WordType) * W |
Number of bytes for an iteration. More... | |
Base class for additive stream ciphers.
WT | word type |
W | count of words |
X | bytes per iteration count |
BASE | AdditiveCipherAbstractPolicy derived base class |
Definition at line 201 of file strciphr.h.
|
inlinevirtual |
Provides number of bytes operated upon during an iteration.
Implements AdditiveCipherAbstractPolicy.
Definition at line 227 of file strciphr.h.
|
inlinevirtual |
Provides buffer size based on iterations.
Implements AdditiveCipherAbstractPolicy.
Definition at line 231 of file strciphr.h.
|
inlinevirtual |
Flag indicating.
Reimplemented from AdditiveCipherAbstractPolicy.
Definition at line 237 of file strciphr.h.
|
pure virtual |
Operates the keystream.
operation | the operation with additional flags |
output | the output buffer |
input | the input buffer |
iterationCount | the number of iterations to perform on the input |
OperateKeystream() will attempt to operate upon GetOptimalBlockSize() buffer, which will be derived from GetBytesPerIteration().
Reimplemented from AdditiveCipherAbstractPolicy.
|
static |
Number of bytes for an iteration.
BYTES_PER_ITERATION is the product sizeof(WordType) * W
. For example, ChaCha uses 16 each word32
, and the value of BYTES_PER_ITERATION is 64. Each invocation of the ChaCha block function produces 64 bytes of keystream.
Definition at line 211 of file strciphr.h.