Fork of François Berder Crypto, fixed AES CBC and small rework
Dependents: AES_example shaun_larada Smartage
Fork of Crypto by
cipher/AES.h
- Committer:
- Geremia
- Date:
- 2015-01-28
- Revision:
- 15:6093fc19aad6
- Parent:
- 8:a090264e9b2d
File content as of revision 15:6093fc19aad6:
#ifndef AES_H #define AES_H #include "BlockCipher.h" enum AES_TYPE { AES_128 = 4, AES_192 = 6, AES_256 = 8 }; class AES : public BlockCipher { public : AES(const AES_TYPE type, uint8_t *key); AES(const AES_TYPE type, uint8_t *key, uint8_t *iv, BLOCK_CIPHER_MODE m=CBC_MODE); void keyExpansion(uint8_t *key); private : virtual void encryptBlock(uint8_t *out, uint8_t *in); virtual void decryptBlock(uint8_t *out, uint8_t *in); uint32_t rotWord(uint32_t w); uint32_t invRotWord(uint32_t w); uint32_t subWord(uint32_t w); void subBytes(); void invSubBytes(); void shiftRows(); void invShiftRows(); void mul(uint8_t *r); void invMul(uint8_t *r); void mixColumns(); void invMixColumns(); void addRoundKey(int round); uint8_t state[16]; uint32_t w[60]; uint8_t nr,nk; }; #endif