- Main Page
- Namespaces
- Classes
- Files

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# BlockTransformation Class Reference

`#include <cryptlib.h>`

Inheritance diagram for BlockTransformation:

List of all members.

## Detailed Description

interface for the data processing part of block ciphers

Classes derived from BlockTransformation are block ciphers in ECB mode (for example the DES::Encryption class), which are stateless, and they can make assumptions about the memory alignment of their inputs and outputs. These classes should not be used directly, but only in combination with a mode class (see CipherModeDocumentation in modes.h).

Definition at line 422 of file cryptlib.h.

## Public Member Functions
virtual void | ProcessAndXorBlock (const byte *inBlock, const byte *xorBlock, byte *outBlock) const =0
| encrypt or decrypt inBlock, xor with xorBlock, and write to outBlock
void | ProcessBlock (const byte *inBlock, byte *outBlock) const
| encrypt or decrypt one block
void | ProcessBlock (byte *inoutBlock) const
| encrypt or decrypt one block in place
virtual unsigned int | BlockSize () const=0
| block size of the cipher in bytes
virtual unsigned int | BlockAlignment () const
| block pointers must be divisible by this
virtual bool | IsPermutation () const
| returns true if this is a permutation (i.e. there is an inverse transformation)
virtual bool | IsForwardTransformation () const=0
| returns true if this is an encryption object
virtual unsigned int | OptimalNumberOfParallelBlocks () const
| return number of blocks that can be processed in parallel, for bit-slicing implementations
virtual void | ProcessAndXorMultipleBlocks (const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t numberOfBlocks) const
| encrypt or decrypt multiple blocks, for bit-slicing implementations
virtual std::string | AlgorithmName () const
| returns name of this algorithm, not universally implemented yet
virtual Clonable * | Clone () const
| this is not implemented by most classes yet

## Member Function Documentation

void BlockTransformation::ProcessBlock | ( | const byte * | inBlock,
|  | byte * | outBlock |
| ) |  |  | const`[inline]`

encrypt or decrypt one block

Precondition:
  size of inBlock and outBlock == BlockSize()

Definition at line 430 of file cryptlib.h.

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

- cryptlib.h
- cryptlib.cpp