Common interface for AES algorithms
An AES class needs to define at least the following methods:
- initialize(key, iv, mode)
Initializes the AES algorithm with the given key and initialization vector. The mode determines how the AES algorithm object works: If the mode is :encrypt, the object encrypts the data, if the mode is :decrypt, the object decrypts the data.
Processes the data and returns the encrypted/decrypted data. The method can assume that the passed in data always has a length that is a multiple of BLOCK_SIZE.