Arduino Cryptography Library
Public Member Functions | List of all members
AESTiny256 Class Reference

AES block cipher with 256-bit keys and tiny memory usage. More...

#include <AES.h>

Inheritance diagram for AESTiny256:
BlockCipher AESSmall256

Public Member Functions

 AESTiny256 ()
 Constructs an AES 256-bit block cipher with no initial key. More...
 
size_t blockSize () const
 Size of an AES block in bytes. More...
 
size_t keySize () const
 Size of a 256-bit AES key in bytes. More...
 
bool setKey (const uint8_t *key, size_t len)
 Sets the key to use for future encryption and decryption operations. More...
 
void encryptBlock (uint8_t *output, const uint8_t *input)
 Encrypts a single block using this cipher. More...
 
void decryptBlock (uint8_t *output, const uint8_t *input)
 Decrypts a single block using this cipher. More...
 
void clear ()
 Clears all security-sensitive state from this block cipher. More...
 
- Public Member Functions inherited from BlockCipher
 BlockCipher ()
 Constructs a block cipher.
 
virtual ~BlockCipher ()
 Destroys this block cipher object. More...
 

Detailed Description

AES block cipher with 256-bit keys and tiny memory usage.

This class differs from the AES256 class in the following ways:

This class is useful when RAM is at a premium, CBC mode is not required, and reduced encryption performance is not a hindrance to the application.

The companion AESSmall256 class supports decryptBlock() at the cost of some additional memory and slower setKey() times.

See also
AESSmall256, AES256

Definition at line 117 of file AES.h.

Constructor & Destructor Documentation

◆ AESTiny256()

AESTiny256::AESTiny256 ( )

Constructs an AES 256-bit block cipher with no initial key.

This constructor must be followed by a call to setKey() before the block cipher can be used for encryption or decryption.

Definition at line 189 of file AES256.cpp.

Member Function Documentation

◆ blockSize()

size_t AESTiny256::blockSize ( ) const
virtual

Size of an AES block in bytes.

Returns
Always returns 16.

Implements BlockCipher.

Definition at line 202 of file AES256.cpp.

◆ clear()

void AESTiny256::clear ( )
virtual

Clears all security-sensitive state from this block cipher.

Security-sensitive information includes key schedules and any temporary state that is used by encryptBlock() or decryptBlock() which is stored in the object itself.

See also
setKey(), encryptBlock(), decryptBlock()

Implements BlockCipher.

Reimplemented in AESSmall256.

Definition at line 277 of file AES256.cpp.

◆ decryptBlock()

void AESTiny256::decryptBlock ( uint8_t *  output,
const uint8_t *  input 
)
virtual

Decrypts a single block using this cipher.

Parameters
outputThe output buffer to put the plaintext into. Must be at least blockSize() bytes in length.
inputThe input buffer to read the ciphertext from which is allowed to overlap with output. Must be at least blockSize() bytes in length.
See also
encryptBlock(), blockSize()

Implements BlockCipher.

Reimplemented in AESSmall256.

Definition at line 272 of file AES256.cpp.

◆ encryptBlock()

void AESTiny256::encryptBlock ( uint8_t *  output,
const uint8_t *  input 
)
virtual

Encrypts a single block using this cipher.

Parameters
outputThe output buffer to put the ciphertext into. Must be at least blockSize() bytes in length.
inputThe input buffer to read the plaintext from which is allowed to overlap with output. Must be at least blockSize() bytes in length.
See also
decryptBlock(), blockSize()

Implements BlockCipher.

Definition at line 226 of file AES256.cpp.

◆ keySize()

size_t AESTiny256::keySize ( ) const
virtual

Size of a 256-bit AES key in bytes.

Returns
Always returns 32.

Implements BlockCipher.

Definition at line 211 of file AES256.cpp.

◆ setKey()

bool AESTiny256::setKey ( const uint8_t *  key,
size_t  len 
)
virtual

Sets the key to use for future encryption and decryption operations.

Parameters
keyThe key to use.
lenThe length of the key.
Returns
Returns false if the key length is not supported, or the key is somehow "weak" and unusable by this cipher.

Use clear() or the destructor to remove the key and any other sensitive data from the object once encryption or decryption is complete.

See also
keySize(), clear()

Implements BlockCipher.

Reimplemented in AESSmall256.

Definition at line 216 of file AES256.cpp.


The documentation for this class was generated from the following files: