Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

BlockTransformation Class Reference

abstract base class for block ciphers. More...

#include <cryptlib.h>

Inheritance diagram for BlockTransformation:

FixedBlockSize LRBase Blowfish CAST128 CAST256 DES DES_EDE2_Decryption DES_EDE2_Encryption DES_EDE3_Decryption DES_EDE3_Encryption DES_XEX3_Decryption DES_XEX3_Encryption Diamond2Base Diamond2LiteBase GOST IDEA MARS MDC RC2Base RC5Base RC6Base Rijndael SAFER Serpent SHARKBase SKIPJACK SquareBase TEA ThreeWayDecryption ThreeWayEncryption Twofish LRDecryption LREncryption List of all members.

Public Methods

virtual ~BlockTransformation ()
virtual void ProcessBlock (byte *inoutBlock)const=0
 encrypt or decrypt one block in place. More...

virtual void ProcessBlock (const byte *inBlock,byte *outBlock)const=0
 encrypt or decrypt one block, may assume inBlock != outBlock. More...

virtual unsigned int BlockSize ()const=0
 block size of the cipher in bytes.


Detailed Description

abstract base class for block ciphers.

All classes derived from BlockTransformation are block ciphers in ECB mode (for example the DESEncryption class), which are stateless. These classes should not be used directly, but only in combination with a mode class (see CipherMode).

Note: BlockTransformation objects may assume that pointers to input and output blocks are aligned on 32-bit word boundaries.

Definition at line 100 of file cryptlib.h.


Constructor & Destructor Documentation

BlockTransformation::~BlockTransformation ( ) [inline, virtual]
 

Definition at line 104 of file cryptlib.h.


Member Function Documentation

void BlockTransformation::ProcessBlock ( const byte * inBlock,
byte * outBlock ) const [pure virtual]
 

encrypt or decrypt one block, may assume inBlock != outBlock.

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

Reimplemented in ThreeWayEncryption, ThreeWayDecryption, Blowfish, CAST128Encryption, CAST128Decryption, CAST256, DES, DES_EDE2_Encryption, DES_EDE2_Decryption, DES_EDE3_Encryption, DES_EDE3_Decryption, DES_XEX3_Encryption, DES_XEX3_Decryption, Diamond2Encryption, Diamond2Decryption, Diamond2LiteEncryption, Diamond2LiteDecryption, GOSTEncryption, GOSTDecryption, IDEA, LREncryption, LRDecryption, MARSEncryption, MARSDecryption, MDC, RC2Encryption, RC2Decryption, RC5Encryption, RC5Decryption, RC6Encryption, RC6Decryption, RijndaelEncryption, RijndaelDecryption, SAFER_K64_Encryption, SAFER_K64_Decryption, SAFER_K128_Encryption, SAFER_K128_Decryption, SAFER_SK64_Encryption, SAFER_SK64_Decryption, SAFER_SK128_Encryption, SAFER_SK128_Decryption, SerpentEncryption, SerpentDecryption, SHARKEncryption, SHARKDecryption, SKIPJACKEncryption, SKIPJACKDecryption, SquareEncryption, SquareDecryption, TEAEncryption, TEADecryption, TwofishEncryption, and TwofishDecryption.

void BlockTransformation::ProcessBlock ( byte * inoutBlock ) const [pure virtual]
 

encrypt or decrypt one block in place.

Precondition:
size of inoutBlock == BlockSize()

Reimplemented in ThreeWayEncryption, ThreeWayDecryption, Blowfish, CAST128Encryption, CAST128Decryption, CAST256, DES, DES_EDE2_Encryption, DES_EDE2_Decryption, DES_EDE3_Encryption, DES_EDE3_Decryption, DES_XEX3_Encryption, DES_XEX3_Decryption, Diamond2Encryption, Diamond2Decryption, Diamond2LiteEncryption, Diamond2LiteDecryption, GOSTEncryption, GOSTDecryption, IDEA, LREncryption, LRDecryption, MARSEncryption, MARSDecryption, MDC, RC2Encryption, RC2Decryption, RC5Encryption, RC5Decryption, RC6Encryption, RC6Decryption, RijndaelEncryption, RijndaelDecryption, SAFER_K64_Encryption, SAFER_K64_Decryption, SAFER_K128_Encryption, SAFER_K128_Decryption, SAFER_SK64_Encryption, SAFER_SK64_Decryption, SAFER_SK128_Encryption, SAFER_SK128_Decryption, SerpentEncryption, SerpentDecryption, SHARKEncryption, SHARKDecryption, SKIPJACKEncryption, SKIPJACKDecryption, SquareEncryption, SquareDecryption, TEAEncryption, TEADecryption, TwofishEncryption, and TwofishDecryption.

Referenced by TwofishDecryption::ProcessBlock(), TwofishEncryption::ProcessBlock(), TEADecryption::ProcessBlock(), TEAEncryption::ProcessBlock(), SquareDecryption::ProcessBlock(), SquareEncryption::ProcessBlock(), SKIPJACKDecryption::ProcessBlock(), SKIPJACKEncryption::ProcessBlock(), SHARKDecryption::ProcessBlock(), SHARKEncryption::ProcessBlock(), SerpentDecryption::ProcessBlock(), SerpentEncryption::ProcessBlock(), RijndaelDecryption::ProcessBlock(), RijndaelEncryption::ProcessBlock(), RC6Decryption::ProcessBlock(), RC6Encryption::ProcessBlock(), RC5Decryption::ProcessBlock(), RC5Encryption::ProcessBlock(), RC2Decryption::ProcessBlock(), RC2Encryption::ProcessBlock(), MARSDecryption::ProcessBlock(), MARSEncryption::ProcessBlock(), LRDecryption::ProcessBlock(), LREncryption::ProcessBlock(), IDEA::ProcessBlock(), GOSTDecryption::ProcessBlock(), GOSTEncryption::ProcessBlock(), DES::ProcessBlock(), CAST256::ProcessBlock(), CAST128Decryption::ProcessBlock(), CAST128Encryption::ProcessBlock(), Blowfish::ProcessBlock(), ThreeWayDecryption::ProcessBlock(), and ThreeWayEncryption::ProcessBlock().


The documentation for this class was generated from the following file:
Generated at Mon Jan 15 01:16:41 2001 for Crypto++ by doxygen1.2.4 written by Dimitri van Heesch, © 1997-2000