CL_AES256_Encrypt Class Reference
[clanCore Crypto]

AES-256 encryption class (running in Cipher Block Chaining mode). More...

#include <aes256_encrypt.h>

List of all members.

Public Member Functions

Construction

 CL_AES256_Encrypt ()
 Constructs a AES-256 generator (running in Cipher Block Chaining mode).
Attributes

CL_DataBuffer get_data () const
 Get encrypted data.

Operations



static const int iv_size = 16
static const int key_size = 32
static const int block_size = 16
void reset ()
 Resets the encryption.
void set_iv (const unsigned char iv[iv_size])
 Sets the initialisation vector.
void set_key (const unsigned char key[key_size])
 Sets the cipher key.
void set_padding (bool value=true, bool use_pkcs7=true, unsigned int num_additional_padded_blocks=0)
 Enable AES Padding.
void add (const void *data, int size)
 Adds data to be encrypted.
void add (const CL_DataBuffer &data)
 Add data to be encrypted.
void calculate ()
 Finalize encryption.

Detailed Description

AES-256 encryption class (running in Cipher Block Chaining mode).


Constructor & Destructor Documentation

CL_AES256_Encrypt::CL_AES256_Encrypt (  ) 

Constructs a AES-256 generator (running in Cipher Block Chaining mode).


Member Function Documentation

void CL_AES256_Encrypt::add ( const void *  data,
int  size 
)

Adds data to be encrypted.

void CL_AES256_Encrypt::add ( const CL_DataBuffer data  ) 

Add data to be encrypted.

Parameters:
data = Data Buffer
void CL_AES256_Encrypt::calculate (  ) 

Finalize encryption.

CL_DataBuffer CL_AES256_Encrypt::get_data (  )  const

Get encrypted data.

This is the databuffer used internally to store the encrypted data. You may call "set_size()" to clear the buffer, inbetween calls to "add()" You may call "set_capacity()" to optimise storage requirements before the add() call

void CL_AES256_Encrypt::reset (  ) 

Resets the encryption.

void CL_AES256_Encrypt::set_iv ( const unsigned char  iv[iv_size]  ) 

Sets the initialisation vector.

This should be a random number
This must be called before the initial add()

void CL_AES256_Encrypt::set_key ( const unsigned char  key[key_size]  ) 

Sets the cipher key.

This must be called before the initial add()

void CL_AES256_Encrypt::set_padding ( bool  value = true,
bool  use_pkcs7 = true,
unsigned int  num_additional_padded_blocks = 0 
)

Enable AES Padding.

Example (use_pkcs7==true) : ... 0x03 0x03 0x03 (3 octets of padding) Example (use_pkcs7==false) : ... 0x02 0x02 0x02 (3 octets of padding, the last octet is the length)

Parameters:
value = true = Enable padding (default)
use_pkcs7 = true = This uses the PKCS#7/RFC3369 method (Enabled by default). false = use the TLS method (rfc2246)
num_additional_padded_blocks = (Only valid when use_pkcs7==false). Set to "frustrate attacks on a protocol based on analysis of the lengths of exchanged messages". (Range 0 to 15)

Member Data Documentation

const int CL_AES256_Encrypt::block_size = 16 [static]
const int CL_AES256_Encrypt::iv_size = 16 [static]
const int CL_AES256_Encrypt::key_size = 32 [static]

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