32#include <wolfssl/wolfcrypt/settings.h>
35#include <wolfssl/openssl/ssl.h>
44typedef struct WOLFSSL_AES_KEY {
46 ALIGN16
void* holder[(376 + WC_ASYNC_DEV_SIZE)/
sizeof(
void*)];
49 ALIGN16
void* M0[4096 /
sizeof(
void*)];
51 #if defined(WOLFSSL_DEVCRYPTO) && \
52 (defined(WOLFSSL_DEVCRYPTO_AES) || defined(WOLFSSL_DEVCRYPTO_CBC))
54 void* devKey[288 /
sizeof(
void*)];
57 void* afalg_holder[288 /
sizeof(
void*)];
60 void* pkcs11_holder[(AES_MAX_ID_LEN +
sizeof(int)) /
sizeof(
void*)];
62 #if defined(WOLFSSL_ASYNC_CRYPT) || defined(WOLF_CRYPTO_CB)
63 void* async_holder[128 /
sizeof(
void*)];
66typedef WOLFSSL_AES_KEY AES_KEY;
68WOLFSSL_API
int wolfSSL_AES_set_encrypt_key
69 (
const unsigned char *,
const int bits, AES_KEY *);
70WOLFSSL_API
int wolfSSL_AES_set_decrypt_key
71 (
const unsigned char *,
const int bits, AES_KEY *);
72WOLFSSL_API
void wolfSSL_AES_cbc_encrypt
73 (
const unsigned char *in,
unsigned char* out,
size_t len,
74 AES_KEY *key,
unsigned char* iv,
const int enc);
75WOLFSSL_API
void wolfSSL_AES_ecb_encrypt
76 (
const unsigned char *in,
unsigned char* out,
77 AES_KEY *key,
const int enc);
78WOLFSSL_API
void wolfSSL_AES_cfb128_encrypt
79 (
const unsigned char *in,
unsigned char* out,
size_t len,
80 AES_KEY *key,
unsigned char* iv,
int* num,
const int enc);
82#define AES_cbc_encrypt wolfSSL_AES_cbc_encrypt
83#define AES_ecb_encrypt wolfSSL_AES_ecb_encrypt
84#define AES_cfb128_encrypt wolfSSL_AES_cfb128_encrypt
85#define AES_set_encrypt_key wolfSSL_AES_set_encrypt_key
86#define AES_set_decrypt_key wolfSSL_AES_set_decrypt_key
88#ifdef WOLFSSL_AES_DIRECT
89WOLFSSL_API
void wolfSSL_AES_encrypt
90 (
const unsigned char* input,
unsigned char* output, AES_KEY *);
91WOLFSSL_API
void wolfSSL_AES_decrypt
92 (
const unsigned char* input,
unsigned char* output, AES_KEY *);
94#define AES_encrypt wolfSSL_AES_encrypt
95#define AES_decrypt wolfSSL_AES_decrypt
99#define AES_ENCRYPT AES_ENCRYPTION
102#define AES_DECRYPT AES_DECRYPTION