Crypto++  5.6.4
Free C++ class library of cryptographic schemes
Public Types | Public Member Functions | Static Public Attributes | List of all members
AdditiveCipherConcretePolicy< WT, W, X, BASE > Class Template Referenceabstract

Base class for additive stream ciphers. More...

+ Inheritance diagram for AdditiveCipherConcretePolicy< WT, W, X, BASE >:

Public Types

typedef WT WordType
 

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...
 
- Public Member Functions inherited from AdditiveCipherAbstractPolicy
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 &params, 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...
 

Static Public Attributes

static const int BYTES_PER_ITERATION = sizeof(WordType) * W
 

Detailed Description

template<typename WT, unsigned int W, unsigned int X = 1, class BASE = AdditiveCipherAbstractPolicy>
class AdditiveCipherConcretePolicy< WT, W, X, BASE >

Base class for additive stream ciphers.

Template Parameters
WTword type
Wcount of words
Xbytes per iteration count
BASEAdditiveCipherAbstractPolicy derived base class

Definition at line 188 of file strciphr.h.

Member Function Documentation

◆ GetAlignment()

template<typename WT , unsigned int W, unsigned int X = 1, class BASE = AdditiveCipherAbstractPolicy>
unsigned int AdditiveCipherConcretePolicy< WT, W, X, BASE >::GetAlignment ( ) const
inlinevirtual

Provides data alignment requirements.

Returns
data alignment requirements, in bytes 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.

Definition at line 198 of file strciphr.h.

◆ GetBytesPerIteration()

template<typename WT , unsigned int W, unsigned int X = 1, class BASE = AdditiveCipherAbstractPolicy>
unsigned int AdditiveCipherConcretePolicy< WT, W, X, BASE >::GetBytesPerIteration ( ) const
inlinevirtual

Provides number of bytes operated upon during an iteration.

Returns
bytes operated upon during an iteration, in bytes
See also
GetOptimalBlockSize()

Implements AdditiveCipherAbstractPolicy.

Definition at line 204 of file strciphr.h.

◆ GetIterationsToBuffer()

template<typename WT , unsigned int W, unsigned int X = 1, class BASE = AdditiveCipherAbstractPolicy>
unsigned int AdditiveCipherConcretePolicy< WT, W, X, BASE >::GetIterationsToBuffer ( ) const
inlinevirtual

Provides buffer size based on iterations.

Returns
the buffer size based on iterations, in bytes

Implements AdditiveCipherAbstractPolicy.

Definition at line 208 of file strciphr.h.

◆ CanOperateKeystream()

template<typename WT , unsigned int W, unsigned int X = 1, class BASE = AdditiveCipherAbstractPolicy>
bool AdditiveCipherConcretePolicy< WT, W, X, BASE >::CanOperateKeystream ( ) const
inlinevirtual

Flag indicating.

Returns
true if the stream can be generated independent of the transformation input, false otherwise
See also
CanOperateKeystream(), OperateKeystream(), WriteKeystream()

Reimplemented from AdditiveCipherAbstractPolicy.

Definition at line 213 of file strciphr.h.

◆ OperateKeystream()

template<typename WT , unsigned int W, unsigned int X = 1, class BASE = AdditiveCipherAbstractPolicy>
virtual void AdditiveCipherConcretePolicy< WT, W, X, BASE >::OperateKeystream ( KeystreamOperation  operation,
byte *  output,
const byte *  input,
size_t  iterationCount 
)
pure virtual

Operates the keystream.

Parameters
operationthe operation with additional flags
outputthe output buffer
inputthe input buffer
iterationCountthe number of iterations to perform on the input OperateKeystream() will attempt to operate upon GetOptimalBlockSize() buffer, which will be derived from GetBytesPerIteration().
See also
CanOperateKeystream(), OperateKeystream(), WriteKeystream(), KeystreamOperation()

Reimplemented from AdditiveCipherAbstractPolicy.


The documentation for this class was generated from the following file: