AdditiveCipherAbstractPolicy Class Referenceabstract

Policy object for additive stream ciphers. More...

Inheritance diagram for AdditiveCipherAbstractPolicy:

## Public Member Functions

virtual unsigned int | GetAlignment () const
| Provides data alignment requirements. More...
virtual unsigned int | GetBytesPerIteration () const =0
| Provides number of bytes operated upon during an iteration. More...
virtual unsigned int | GetOptimalBlockSize () const
| Provides number of ideal bytes to process. More...
virtual unsigned int | GetIterationsToBuffer () const =0
| Provides buffer size based on iterations. More...
virtual void | WriteKeystream (byte *keystream, size_t iterationCount)
| Generate the keystream. More...
virtual bool | CanOperateKeystream () const
| Flag indicating. More...
virtual void | OperateKeystream (KeystreamOperation operation, byte *output, const byte *input, size_t iterationCount)
| Operates 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...

## Detailed Description

Policy object for additive stream ciphers.

Definition at line 108 of file strciphr.h.

## Member Function Documentation

## GetAlignment()

virtual unsigned int AdditiveCipherAbstractPolicy::GetAlignment | ( |  | ) | const

inline virtual

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 in AdditiveCipherConcretePolicy< word32, 20 >, AdditiveCipherConcretePolicy< word32, 8 >, AdditiveCipherConcretePolicy< word32, 256 >, AdditiveCipherConcretePolicy< word32, 16 >, and AdditiveCipherConcretePolicy< word32, 1, 64 >.

Definition at line 116 of file strciphr.h.

## GetBytesPerIteration()

virtual unsigned int AdditiveCipherAbstractPolicy::GetBytesPerIteration | ( |  | ) | const

pure virtual

Provides number of bytes operated upon during an iteration.

Returns
  bytes operated upon during an iteration, in bytes

See also
  GetOptimalBlockSize()

Implemented in AdditiveCipherConcretePolicy< word32, 20 >, AdditiveCipherConcretePolicy< word32, 8 >, AdditiveCipherConcretePolicy< word32, 256 >, AdditiveCipherConcretePolicy< word32, 16 >, and AdditiveCipherConcretePolicy< word32, 1, 64 >.

## GetOptimalBlockSize()

virtual unsigned int AdditiveCipherAbstractPolicy::GetOptimalBlockSize | ( |  | ) | const

inline virtual

Provides number of ideal bytes to process.

Returns
  the ideal number of bytes to process

Internally, the default implementation returns GetBytesPerIteration()

See also
  GetBytesPerIteration()

Definition at line 127 of file strciphr.h.

## GetIterationsToBuffer()

virtual unsigned int AdditiveCipherAbstractPolicy::GetIterationsToBuffer | ( |  | ) | const

pure virtual

Provides buffer size based on iterations.

Returns
  the buffer size based on iterations, in bytes

Implemented in AdditiveCipherConcretePolicy< word32, 20 >, AdditiveCipherConcretePolicy< word32, 8 >, AdditiveCipherConcretePolicy< word32, 256 >, AdditiveCipherConcretePolicy< word32, 16 >, and AdditiveCipherConcretePolicy< word32, 1, 64 >.

## WriteKeystream()

virtual void AdditiveCipherAbstractPolicy::WriteKeystream | ( | byte * | keystream,
|  | size_t | iterationCount
| ) |  |

inline virtual

Generate the keystream.

Parameters

  keystream | the key stream
  iterationCount | the number of iterations to generate the key stream

See also
  CanOperateKeystream(), OperateKeystream(), WriteKeystream()

Definition at line 137 of file strciphr.h.

## CanOperateKeystream()

virtual bool AdditiveCipherAbstractPolicy::CanOperateKeystream | ( |  | ) | const

inline virtual

Flag indicating.

Returns
  true if the stream can be generated independent of the transformation input, false otherwise

See also
  CanOperateKeystream(), OperateKeystream(), WriteKeystream()

Reimplemented in AdditiveCipherConcretePolicy< word32, 20 >, AdditiveCipherConcretePolicy< word32, 8 >, AdditiveCipherConcretePolicy< word32, 256 >, AdditiveCipherConcretePolicy< word32, 16 >, and AdditiveCipherConcretePolicy< word32, 1, 64 >.

Definition at line 143 of file strciphr.h.

## OperateKeystream()

virtual void AdditiveCipherAbstractPolicy::OperateKeystream | ( | KeystreamOperation | operation,
|  | byte * | output,
|  | const byte * | input,
|  | size_t | iterationCount
| ) |  |

inline virtual

Operates the keystream.

Parameters

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

See also
  CanOperateKeystream(), OperateKeystream(), WriteKeystream(), KeystreamOperation()

Reimplemented in AdditiveCipherConcretePolicy< word32, 20 >, AdditiveCipherConcretePolicy< word32, 8 >, AdditiveCipherConcretePolicy< word32, 256 >, AdditiveCipherConcretePolicy< word32, 16 >, and AdditiveCipherConcretePolicy< word32, 1, 64 >.

Definition at line 153 of file strciphr.h.

## CipherSetKey()

virtual void AdditiveCipherAbstractPolicy::CipherSetKey | ( | const NameValuePairs & | params,
|  | const byte * | key,
|  | size_t | length
| ) |  |

pure virtual

Key the cipher.

Parameters

  params | set of NameValuePairs use to initialize this object
  key | a byte array used to key the cipher
  length | the size of the key array

Implemented in XSalsa20_Policy.

## CipherResynchronize()

virtual void AdditiveCipherAbstractPolicy::CipherResynchronize | ( | byte * | keystreamBuffer,
|  | const byte * | iv,
|  | size_t | length
| ) |  |

inline virtual

Resynchronize the cipher.

Parameters

  keystreamBuffer | the keystream buffer
  iv | a byte array used to resynchronize the cipher
  length | the size of the IV array

Reimplemented in XSalsa20_Policy.

Definition at line 166 of file strciphr.h.

## CipherIsRandomAccess()

virtual bool AdditiveCipherAbstractPolicy::CipherIsRandomAccess | ( |  | ) | const

pure virtual

Flag indicating random access.

Returns
  true if the cipher is seekable, false otherwise

See also
  SeekToIteration()

Implemented in CTR_ModePolicy, and OFB_ModePolicy.

## SeekToIteration()

virtual void AdditiveCipherAbstractPolicy::SeekToIteration | ( | lword | iterationCount | ) |

inline virtual

Seeks to a random position in the stream.

Returns
  iterationCount

See also
  CipherIsRandomAccess()

Definition at line 177 of file strciphr.h.

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

- strciphr.h