29 #ifndef WOLFSSL_AES_H_ 30 #define WOLFSSL_AES_H_ 32 #include <wolfssl/wolfcrypt/settings.h> 35 #include <wolfssl/openssl/ssl.h> 44 typedef 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*)];
66 typedef WOLFSSL_AES_KEY AES_KEY;
68 WOLFSSL_API
int wolfSSL_AES_set_encrypt_key
69 (
const unsigned char *,
const int bits, AES_KEY *);
70 WOLFSSL_API
int wolfSSL_AES_set_decrypt_key
71 (
const unsigned char *,
const int bits, AES_KEY *);
72 WOLFSSL_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);
75 WOLFSSL_API
void wolfSSL_AES_ecb_encrypt
76 (
const unsigned char *in,
unsigned char* out,
77 AES_KEY *key,
const int enc);
78 WOLFSSL_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 89 WOLFSSL_API
void wolfSSL_AES_encrypt
90 (
const unsigned char* input,
unsigned char* output, AES_KEY *);
91 WOLFSSL_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