Fabcoin Core  0.16.2
P2P Digital Currency
Public Types | Public Member Functions | List of all members
AdditiveCipherConcretePolicy< WT, W, X, BASE > Class Template Referenceabstract

Base class for additive stream ciphers. More...

#include <strciphr.h>

Inheritance diagram for AdditiveCipherConcretePolicy< WT, W, X, BASE >:
[legend]
Collaboration diagram for AdditiveCipherConcretePolicy< WT, W, X, BASE >:
[legend]

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...
 

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 186 of file strciphr.h.

Member Typedef Documentation

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

Definition at line 188 of file strciphr.h.

Member Function Documentation

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

Flag indicating.

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

Definition at line 211 of file strciphr.h.

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

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.

Definition at line 196 of file strciphr.h.

Here is the caller graph for this function:

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

Provides number of bytes operated upon during an iteration.

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

Definition at line 202 of file strciphr.h.

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

Provides buffer size based on iterations.

Returns
the buffer size based on iterations, in bytes

Definition at line 206 of file strciphr.h.

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()

Implemented in PanamaCipherPolicy< B >, WAKE_Policy< B >, ChaCha_Policy< R >, SosemanukPolicy, Salsa20_Policy, and SEAL_Policy< B >.


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