Arduino Cryptography Library
|
Implementation of the Cipher Feedback (CFB) mode for 128-bit block ciphers. More...
#include <CFB.h>
Public Member Functions | |
CFB () | |
Constructs a new CFB object for the block cipher T. | |
Public Member Functions inherited from CFBCommon | |
virtual | ~CFBCommon () |
Destroys this cipher object after clearing sensitive information. | |
size_t | keySize () const |
Default size of the key for this cipher, in bytes. More... | |
size_t | ivSize () const |
Size of the initialization vector for this cipher, in bytes. More... | |
bool | setKey (const uint8_t *key, size_t len) |
Sets the key to use for future encryption and decryption operations. More... | |
bool | setIV (const uint8_t *iv, size_t len) |
Sets the initialization vector to use for future encryption and decryption operations. More... | |
void | encrypt (uint8_t *output, const uint8_t *input, size_t len) |
Encrypts an input buffer and writes the ciphertext to an output buffer. More... | |
void | decrypt (uint8_t *output, const uint8_t *input, size_t len) |
Decrypts an input buffer and writes the plaintext to an output buffer. More... | |
void | clear () |
Clears all security-sensitive state from this cipher. More... | |
Public Member Functions inherited from Cipher | |
Cipher () | |
Constructs a new cipher object. | |
virtual | ~Cipher () |
Destroys this cipher object. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from CFBCommon | |
CFBCommon () | |
Constructs a new cipher in CFB mode. More... | |
void | setBlockCipher (BlockCipher *cipher) |
Sets the block cipher to use for this CFB object. More... | |
Implementation of the Cipher Feedback (CFB) mode for 128-bit block ciphers.
The template parameter T must be a concrete subclass of BlockCipher indicating the specific block cipher to use. T must have a block size of 16 bytes (128 bits). The size of the CFB shift register is the same as the block size.
For example, the following creates a CFB object using AES192 as the underlying cipher:
Decryption is similar:
The size of the ciphertext will always be the same as the size of the plaintext.
Reference: http://en.wikipedia.org/wiki/Block_cipher_mode_of_operation