Security Scol plugin
|
Base class for additive stream ciphers. More...
#include <strciphr.h>
Public Types | |
typedef WT | WordType |
Word type for the cipher. | |
Public Member Functions | |
CRYPTOPP_CONSTANT (BYTES_PER_ITERATION=sizeof(WordType) *W) | |
Number of bytes for an iteration. | |
unsigned int | GetAlignment () const |
Provides data alignment requirements. | |
unsigned int | GetBytesPerIteration () const |
Provides number of bytes operated upon during an iteration. | |
unsigned int | GetIterationsToBuffer () const |
Provides buffer size based on iterations. | |
bool | CanOperateKeystream () const |
Flag indicating. | |
virtual void | OperateKeystream (KeystreamOperation operation, byte *output, const byte *input, size_t iterationCount)=0 |
Operates the keystream. | |
Public Member Functions inherited from AdditiveCipherAbstractPolicy | |
virtual unsigned int | GetOptimalBlockSize () const |
Provides number of ideal bytes to process. | |
virtual void | WriteKeystream (byte *keystream, size_t iterationCount) |
Generate the keystream. | |
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. | |
virtual bool | CipherIsRandomAccess () const =0 |
Flag indicating random access. | |
virtual void | SeekToIteration (lword iterationCount) |
Seeks to a random position in the stream. | |
virtual std::string | AlgorithmProvider () const |
Retrieve the provider of this algorithm. | |
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.
typedef WT AdditiveCipherConcretePolicy< WT, W, X, BASE >::WordType |
Word type for the cipher.
Definition at line 204 of file strciphr.h.
|
inlinevirtual |
Definition at line 213 of file strciphr.h.
|
inlinevirtual |
Flag indicating.
Reimplemented from AdditiveCipherAbstractPolicy.
Reimplemented in HC128Policy, HC256Policy, RabbitPolicy, and RabbitWithIVPolicy.
Definition at line 235 of file strciphr.h.
AdditiveCipherConcretePolicy< WT, W, X, BASE >::CRYPTOPP_CONSTANT | ( | BYTES_PER_ITERATION | = sizeof(WordType) *W | ) |
|
inlinevirtual |
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.
Reimplemented from AdditiveCipherAbstractPolicy.
Reimplemented in ChaCha_Policy, ChaChaTLS_Policy, XChaCha20_Policy, and PanamaCipherPolicy< B >.
Definition at line 220 of file strciphr.h.
|
inlinevirtual |
Provides number of bytes operated upon during an iteration.
Implements AdditiveCipherAbstractPolicy.
Definition at line 225 of file strciphr.h.
|
inlinevirtual |
Provides buffer size based on iterations.
Implements AdditiveCipherAbstractPolicy.
Definition at line 229 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.
Implemented in ChaCha_Policy, ChaChaTLS_Policy, XChaCha20_Policy, HC128Policy, HC256Policy, PanamaCipherPolicy< B >, RabbitPolicy, RabbitWithIVPolicy, Salsa20_Policy, SEAL_Policy< B >, SosemanukPolicy, and WAKE_Policy< B >.