CFB_CipherAbstractPolicy Class Referenceabstract

Policy object for feeback based stream ciphers. More...

Inheritance diagram for CFB_CipherAbstractPolicy:

## Public Member Functions

virtual unsigned int | GetAlignment () const =0
| Provides data alignment requirements. More...
virtual unsigned int | GetBytesPerIteration () const =0
| Provides number of bytes operated upon during an iteration. More...
virtual byte * | GetRegisterBegin ()=0
| Access the feedback register. More...
virtual void | TransformRegister ()=0
| TODO.
virtual bool | CanIterate () const
| Flag indicating iteration support. More...
virtual void | Iterate (byte *output, const byte *input, CipherDir dir, size_t iterationCount)
| Iterate the cipher. More...
virtual void | CipherSetKey (const NameValuePairs &params, const byte *key, size_t length)=0
| Key the cipher. More...
virtual void | CipherResynchronize (const byte *iv, size_t length)
| Resynchronize the cipher. More...
virtual std::string | AlgorithmProvider () const
| Retrieve the provider of this algorithm. More...

## Detailed Description

Policy object for feeback based stream ciphers.

Definition at line 397 of file strciphr.h.

## Member Function Documentation

## GetAlignment()

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

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

Implemented in CFB_CipherConcretePolicy< WT, W, BASE >.

## GetBytesPerIteration()

virtual unsigned int CFB_CipherAbstractPolicy::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 CFB_CipherConcretePolicy< WT, W, BASE >.

## GetRegisterBegin()

virtual byte* CFB_CipherAbstractPolicy::GetRegisterBegin | ( |  | ) |

pure virtual

Access the feedback register.

Returns
  pointer to the first byte of the feedback register

## CanIterate()

virtual bool CFB_CipherAbstractPolicy::CanIterate | ( |  | ) | const

inline virtual

Flag indicating iteration support.

Returns
  true if the cipher supports iteration, false otherwise

Reimplemented in CFB_CipherConcretePolicy< WT, W, BASE >.

Definition at line 422 of file strciphr.h.

## Iterate()

virtual void CFB_CipherAbstractPolicy::Iterate | ( | byte * | output,
|  | const byte * | input,
|  | CipherDir | dir,
|  | size_t | iterationCount
| ) |  |

inline virtual

Iterate the cipher.

Parameters

  output | the output buffer
  input | the input buffer
  dir | the direction of the cipher
  iterationCount | the number of iterations to perform on the input

See also
  IsSelfInverting() and IsForwardTransformation()

Definition at line 430 of file strciphr.h.

## CipherSetKey()

virtual void CFB_CipherAbstractPolicy::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

## CipherResynchronize()

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

inline virtual

Resynchronize the cipher.

Parameters

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

Definition at line 444 of file strciphr.h.

## AlgorithmProvider()

virtual std::string CFB_CipherAbstractPolicy::AlgorithmProvider | ( |  | ) | const

inline virtual

Retrieve the provider of this algorithm.

Returns
  the algorithm provider

The algorithm provider can be a name like "C++", "SSE", "NEON", "AESNI", "ARMv8" and "Power8". C++ is standard C++ code. Other labels, like SSE, usually indicate a specialized implementation using instructions from a higher instruction set architecture (ISA). Future labels may include external hardware like a hardware security module (HSM).

Generally speaking Wei Dai's original IA-32 ASM code falls under "SSE2". Labels like "SSSE3" and "SSE4.1" follow after Wei's code and use intrinsics instead of ASM.

Algorithms which combine different instructions or ISAs provide the dominant one. For example on x86 `AES/GCM` returns "AESNI" rather than "CLMUL" or "AES+SSE4.1" or "AES+CLMUL" or "AES+SSE4.1+CLMUL".

Note
  Provider is not universally implemented yet.

Definition at line 462 of file strciphr.h.

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

- strciphr.h