implify multitap core options
[pcsx_rearmed.git] / deps / lzma-16.04 / C / Aes.h
CommitLineData
ce188d4d 1/* Aes.h -- AES encryption / decryption\r
22013-01-18 : Igor Pavlov : Public domain */\r
3\r
4#ifndef __AES_H\r
5#define __AES_H\r
6\r
7#include "7zTypes.h"\r
8\r
9EXTERN_C_BEGIN\r
10\r
11#define AES_BLOCK_SIZE 16\r
12\r
13/* Call AesGenTables one time before other AES functions */\r
14void AesGenTables(void);\r
15\r
16/* UInt32 pointers must be 16-byte aligned */\r
17\r
18/* 16-byte (4 * 32-bit words) blocks: 1 (IV) + 1 (keyMode) + 15 (AES-256 roundKeys) */\r
19#define AES_NUM_IVMRK_WORDS ((1 + 1 + 15) * 4)\r
20\r
21/* aes - 16-byte aligned pointer to keyMode+roundKeys sequence */\r
22/* keySize = 16 or 24 or 32 (bytes) */\r
23typedef void (MY_FAST_CALL *AES_SET_KEY_FUNC)(UInt32 *aes, const Byte *key, unsigned keySize);\r
24void MY_FAST_CALL Aes_SetKey_Enc(UInt32 *aes, const Byte *key, unsigned keySize);\r
25void MY_FAST_CALL Aes_SetKey_Dec(UInt32 *aes, const Byte *key, unsigned keySize);\r
26\r
27/* ivAes - 16-byte aligned pointer to iv+keyMode+roundKeys sequence: UInt32[AES_NUM_IVMRK_WORDS] */\r
28void AesCbc_Init(UInt32 *ivAes, const Byte *iv); /* iv size is AES_BLOCK_SIZE */\r
29/* data - 16-byte aligned pointer to data */\r
30/* numBlocks - the number of 16-byte blocks in data array */\r
31typedef void (MY_FAST_CALL *AES_CODE_FUNC)(UInt32 *ivAes, Byte *data, size_t numBlocks);\r
32extern AES_CODE_FUNC g_AesCbc_Encode;\r
33extern AES_CODE_FUNC g_AesCbc_Decode;\r
34extern AES_CODE_FUNC g_AesCtr_Code;\r
35\r
36EXTERN_C_END\r
37\r
38#endif\r