/*
*   Byte-oriented AES-256 implementation.
*   All lookup tables replaced with 'on the fly' calculations.
*
*   Copyright (c) 2007-2009 Ilya O. Levin, http://www.literatecode.com
*   Other contributors: Hal Finney
*   Adaptation: Sunkware
*
*   Permission to use, copy, modify, and distribute this software for any
*   purpose with or without fee is hereby granted, provided that the above
*   copyright notice and this permission notice appear in all copies.
*
*   THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
*   WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
*   MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
*   ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
*   WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
*   ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
*   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

#ifndef AES256_H
#define AES256_H

#include <QGlobalStatic>


namespace cryptrav
{

typedef struct
 {
  quint8 key[0x20];
  quint8 enckey[0x20];
  quint8 deckey[0x20];
 } AES256_CTX;


void aes256_init(AES256_CTX* ctx, quint8* key);
void aes256_encrypt(AES256_CTX* ctx, quint8* pInOut);
void aes256_decrypt(AES256_CTX* ctx, quint8* pInOut);
void aes256_clear(AES256_CTX* ctx);


} // namespace "cryptrav"

#endif // AES256_H
