AES block cipher algorithm implementation.
More...
#include <aes.hpp>
|
| AES (const uint8_t key[4 *K]) |
|
| AES (const AES &other) |
|
virtual | ~AES () |
|
void | cipher (const std::array< uint8_t, 16 > &input, std::array< uint8_t, 16 > &output) |
|
void | decipher (const std::array< uint8_t, 16 > &input, std::array< uint8_t, 16 > &output) |
|
virtual void | cipher (const std::array< uint8_t, B > &input, std::array< uint8_t, B > &output)=0 |
|
virtual void | decipher (const std::array< uint8_t, B > &input, std::array< uint8_t, B > &output)=0 |
|
template<std::size_t K, std::size_t R>
class anch::crypto::AES< K, R >
AES block cipher algorithm implementation.
This class only implements the key management and the cipher/decipher of one block.
See standard specification for more details (http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf).
- Since
- 0.1
- Author
- Vincent Lachenal
template<std::size_t K, std::size_t R>
AES constructor
- Parameters
-
template<std::size_t K, std::size_t R>
AES copy constructor.
This constructor will copy the expanded key to avoid to compute it another time.
- Parameters
-
template<std::size_t K, std::size_t R>
template<std::size_t K, std::size_t R>
void anch::crypto::AES< K, R >::cipher |
( |
const std::array< uint8_t, 16 > & |
input, |
|
|
std::array< uint8_t, 16 > & |
output |
|
) |
| |
|
inline |
Cipher a block
- Parameters
-
input | the block to cipher |
output | the ciphered block |
template<std::size_t K, std::size_t R>
void anch::crypto::AES< K, R >::decipher |
( |
const std::array< uint8_t, 16 > & |
input, |
|
|
std::array< uint8_t, 16 > & |
output |
|
) |
| |
|
inline |
Decipher a block
- Parameters
-
input | the block to decipher |
output | the deciphered block |
The documentation for this class was generated from the following file:
- anch-crypto/inc/crypto/cipher/aes.hpp