|
Crypto++
8.4
Free C++ class library of cryptographic schemes
|
Base class for additive stream ciphers. More...
Inheritance diagram for AdditiveCipherConcretePolicy< WT, W, X, BASE >: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... | |
Public Member Functions inherited from AdditiveCipherAbstractPolicy | |
| 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.
1.8.17