Crypto++
8.0
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 | GetAlignment () const |
Provides data alignment requirements. More... | |
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... | |
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.
|
inline |
Provides data alignment requirements.
Internally, the default implementation returns 1. If the stream cipher is implemented using an SSE2 ASM or intrinsics, then the value returned is usually 16.
Definition at line 221 of file strciphr.h.
|
inline |
Provides number of bytes operated upon during an iteration.
Definition at line 227 of file strciphr.h.
|
inline |
Provides buffer size based on iterations.
Definition at line 231 of file strciphr.h.
|
inline |
Flag indicating.
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().
|
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.