Crypto++
|
interface for the data processing part of block ciphers More...
#include <cryptlib.h>
Public Types | |
enum | { BT_InBlockIsCounter =1, BT_DontIncrementInOutPointers =2, BT_XorInput =4, BT_ReverseDirection =8, BT_AllowParallel =16 } |
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 More... | |
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 | OptimalDataAlignment () const |
returns how inputs and outputs should be aligned for optimal performance | |
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 size_t | AdvancedProcessBlocks (const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) const |
encrypt and xor blocks according to flags (see FlagsForAdvancedProcessBlocks) More... | |
CipherDir | GetCipherDirection () const |
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 | |
Public Attributes | |
enum BlockTransformation:: { ... } | FlagsForAdvancedProcessBlocks |
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. These classes should not be used directly, but only in combination with a mode class (see CipherModeDocumentation in modes.h).
Definition at line 428 of file cryptlib.h.
|
inline |
encrypt or decrypt one block
Definition at line 436 of file cryptlib.h.
|
virtual |
encrypt and xor blocks according to flags (see FlagsForAdvancedProcessBlocks)
/note If BT_InBlockIsCounter is set, last byte of inBlocks may be modified.