Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

BlockTransformation Class Reference

#include <cryptlib.h>

Inheritance diagram for BlockTransformation:

Algorithm Clonable BlockCipher 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 399 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, unsigned int 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 ClonableClone () 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 407 of file cryptlib.h.

References ProcessBlock().

Referenced by ProcessBlock().


The documentation for this class was generated from the following files:
Generated on Wed Jul 28 08:07:10 2004 for Crypto++ by doxygen 1.3.7