BlockTransformation Class Reference

#include <cryptlib.h>

Inheritance diagram for BlockTransformation:

Algorithm Clonable BlockCipher SAFER::Base SimpleKeyingInterfaceImpl< BlockCipher, BTEA_Info > TwoBases< BlockCipher, Blowfish_Info > TwoBases< BlockCipher, Camellia_Info > TwoBases< BlockCipher, CAST128_Info > TwoBases< BlockCipher, CAST256_Info > TwoBases< BlockCipher, DES_EDE2_Info > TwoBases< BlockCipher, DES_EDE3_Info > TwoBases< BlockCipher, DES_Info > TwoBases< BlockCipher, DES_XEX3_Info > TwoBases< BlockCipher, GOST_Info > TwoBases< BlockCipher, IDEA_Info > TwoBases< BlockCipher, LR_Info< T > > TwoBases< BlockCipher, MARS_Info > TwoBases< BlockCipher, MDC_Info< T > > TwoBases< BlockCipher, RC2_Info > TwoBases< BlockCipher, RC5_Info > TwoBases< BlockCipher, RC6_Info > TwoBases< BlockCipher, Rijndael_Info > TwoBases< BlockCipher, Serpent_Info > TwoBases< BlockCipher, SHACAL2_Info > TwoBases< BlockCipher, SHARK_Info > TwoBases< BlockCipher, SKIPJACK_Info > TwoBases< BlockCipher, Square_Info > TwoBases< BlockCipher, TEA_Info > TwoBases< BlockCipher, ThreeWay_Info > TwoBases< BlockCipher, Twofish_Info > TwoBases< BlockCipher, XTEA_Info > 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
CipherDir GetCipherDirection () const
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 430 of file cryptlib.h.


The documentation for this class was generated from the following files:
Generated on Sat Dec 23 02:07:15 2006 for Crypto++ by  doxygen 1.5.1-p1