Fabcoin Core  0.16.2
P2P Digital Currency
Protected Member Functions | Private Attributes | List of all members
SEAL_Policy< B > Class Template Reference

SEAL stream cipher operation. More...

#include <seal.h>

Inheritance diagram for SEAL_Policy< B >:
[legend]
Collaboration diagram for SEAL_Policy< B >:
[legend]

Protected Member Functions

void CipherSetKey (const NameValuePairs &params, const byte *key, size_t length)
 Key the cipher. More...
 
void OperateKeystream (KeystreamOperation operation, byte *output, const byte *input, size_t iterationCount)
 Operates the keystream. More...
 
void CipherResynchronize (byte *keystreamBuffer, const byte *IV, size_t length)
 Resynchronize the cipher. More...
 
bool CipherIsRandomAccess () const
 Flag indicating random access. More...
 
void SeekToIteration (lword iterationCount)
 Seeks to a random position in the stream. More...
 

Private Attributes

FixedSizeSecBlock< word32, 512 > m_T
 
FixedSizeSecBlock< word32, 256 > m_S
 
SecBlock< word32m_R
 
word32 m_startCount
 
word32 m_iterationsPerCount
 
word32 m_outsideCounter
 
word32 m_insideCounter
 

Additional Inherited Members

- Public Types inherited from AdditiveCipherConcretePolicy< word32, 256 >
typedef word32 WordType
 
- Public Member Functions inherited from AdditiveCipherConcretePolicy< word32, 256 >
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...
 
- Public Member Functions inherited from AdditiveCipherAbstractPolicy
virtual ~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...
 
- Public Member Functions inherited from SEAL_Info< B >
CRYPTOPP_STATIC_CONSTEXPR const char * StaticAlgorithmName ()
 
- Public Member Functions inherited from FixedKeyLength< 20, SimpleKeyingInterface::INTERNALLY_GENERATED_IV, 4 >
CRYPTOPP_STATIC_CONSTEXPR size_t CRYPTOPP_API StaticGetValidKeyLength (size_t keylength)
 The default key length used by the algorithm provided as a constant. More...
 

Detailed Description

template<class B = BigEndian>
class SEAL_Policy< B >

SEAL stream cipher operation.

Template Parameters
BEndianness of the stream cipher

Definition at line 27 of file seal.h.

Member Function Documentation

template<class B = BigEndian>
bool SEAL_Policy< B >::CipherIsRandomAccess ( ) const
inlineprotectedvirtual

Flag indicating random access.

Returns
true if the cipher is seekable, false otherwise
See also
SeekToIteration()

Implements AdditiveCipherAbstractPolicy.

Definition at line 33 of file seal.h.

template<class B >
void SEAL_Policy< B >::CipherResynchronize ( byte keystreamBuffer,
const byte iv,
size_t  length 
)
protectedvirtual

Resynchronize the cipher.

Parameters
keystreamBufferthe keystream buffer
iva byte array used to resynchronize the cipher
lengththe size of the IV array

Reimplemented from AdditiveCipherAbstractPolicy.

Definition at line 73 of file seal.cpp.

template<class B >
void SEAL_Policy< B >::CipherSetKey ( const NameValuePairs params,
const byte key,
size_t  length 
)
protectedvirtual

Key the cipher.

Parameters
paramsset of NameValuePairs use to initialize this object
keya byte array used to key the cipher
lengththe size of the key array

Implements AdditiveCipherAbstractPolicy.

Definition at line 49 of file seal.cpp.

Here is the call graph for this function:

template<class B >
void SEAL_Policy< B >::OperateKeystream ( KeystreamOperation  operation,
byte output,
const byte input,
size_t  iterationCount 
)
protectedvirtual

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

Implements AdditiveCipherConcretePolicy< word32, 256 >.

Definition at line 91 of file seal.cpp.

Here is the call graph for this function:

template<class B >
void SEAL_Policy< B >::SeekToIteration ( lword  iterationCount)
protectedvirtual

Seeks to a random position in the stream.

Returns
iterationCount
See also
CipherIsRandomAccess()

Reimplemented from AdditiveCipherAbstractPolicy.

Definition at line 84 of file seal.cpp.

Member Data Documentation

template<class B = BigEndian>
word32 SEAL_Policy< B >::m_insideCounter
private

Definition at line 42 of file seal.h.

template<class B = BigEndian>
word32 SEAL_Policy< B >::m_iterationsPerCount
private

Definition at line 41 of file seal.h.

template<class B = BigEndian>
word32 SEAL_Policy< B >::m_outsideCounter
private

Definition at line 42 of file seal.h.

template<class B = BigEndian>
SecBlock<word32> SEAL_Policy< B >::m_R
private

Definition at line 39 of file seal.h.

template<class B = BigEndian>
FixedSizeSecBlock<word32, 256> SEAL_Policy< B >::m_S
private

Definition at line 38 of file seal.h.

template<class B = BigEndian>
word32 SEAL_Policy< B >::m_startCount
private

Definition at line 41 of file seal.h.

template<class B = BigEndian>
FixedSizeSecBlock<word32, 512> SEAL_Policy< B >::m_T
private

Definition at line 37 of file seal.h.


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