/*  
     Byte-oriented AES-256 implementation.
     All lookup tables replaced with 'on the fly' calculations. 

     Written by Ilya O. Levin, http://www.literatecode.com    

     This source code released for free "as is" under the whatever XYZ
     license without warranty or liability of any kind. 
*/

#ifndef uint8_t
#define uint8_t  unsigned char
#endif

#ifdef __cplusplus
extern "C" { 
#endif

    typedef struct {
        uint8_t key[32]; 
        uint8_t enckey[32]; 
        uint8_t deckey[32];
    } aes256_context; 


    void aes256_init(aes256_context *, uint8_t * /* key */);
    void aes256_done(aes256_context *);
    void aes256_encrypt_ecb(aes256_context *, uint8_t * /* plaintext */);
    void aes256_decrypt_ecb(aes256_context *, uint8_t * /* cipertext */);

#ifdef __cplusplus
}
#endif
