|
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.
1.8.11