75 lines
2.3 KiB
C
75 lines
2.3 KiB
C
/**
|
|
* \file aes_alt.h
|
|
*
|
|
* \brief AES block cipher implemented by Freethink
|
|
*
|
|
*/
|
|
#ifndef MBEDTLS_AES_ALT_H
|
|
#define MBEDTLS_AES_ALT_H
|
|
|
|
#if defined(MBEDTLS_AES_ALT)
|
|
|
|
/**
|
|
* \brief AES ALT context structure
|
|
*/
|
|
typedef struct
|
|
{
|
|
uint32_t keybits; /*!< AES key length */
|
|
uint8_t key[32]; /*!< AES key */
|
|
}
|
|
mbedtls_aes_context;
|
|
|
|
void mbedtls_aes_init( mbedtls_aes_context *ctx );
|
|
void mbedtls_aes_free( mbedtls_aes_context *ctx );
|
|
int mbedtls_aes_setkey_enc( mbedtls_aes_context *ctx, const unsigned char *key,
|
|
unsigned int keybits );
|
|
|
|
int mbedtls_aes_setkey_dec( mbedtls_aes_context *ctx, const unsigned char *key,
|
|
unsigned int keybits );
|
|
|
|
|
|
|
|
int mbedtls_aes_crypt_ecb( mbedtls_aes_context *ctx,
|
|
int mode,
|
|
const unsigned char input[16],
|
|
unsigned char output[16] );
|
|
|
|
#if defined(MBEDTLS_CIPHER_MODE_CBC)
|
|
int mbedtls_aes_crypt_cbc( mbedtls_aes_context *ctx,
|
|
int mode,
|
|
size_t length,
|
|
unsigned char iv[16],
|
|
const unsigned char *input,
|
|
unsigned char *output );
|
|
#endif /* MBEDTLS_CIPHER_MODE_CBC */
|
|
|
|
#if defined(MBEDTLS_CIPHER_MODE_CFB)
|
|
int mbedtls_aes_crypt_cfb128( mbedtls_aes_context *ctx,
|
|
int mode,
|
|
size_t length,
|
|
size_t *iv_off,
|
|
unsigned char iv[16],
|
|
const unsigned char *input,
|
|
unsigned char *output );
|
|
|
|
int mbedtls_aes_crypt_cfb8( mbedtls_aes_context *ctx,
|
|
int mode,
|
|
size_t length,
|
|
unsigned char iv[16],
|
|
const unsigned char *input,
|
|
unsigned char *output );
|
|
#endif /*MBEDTLS_CIPHER_MODE_CFB */
|
|
|
|
#if defined(MBEDTLS_CIPHER_MODE_CTR)
|
|
int mbedtls_aes_crypt_ctr( mbedtls_aes_context *ctx,
|
|
size_t length,
|
|
size_t *nc_off,
|
|
unsigned char nonce_counter[16],
|
|
unsigned char stream_block[16],
|
|
const unsigned char *input,
|
|
unsigned char *output );
|
|
#endif /* MBEDTLS_CIPHER_MODE_CTR */
|
|
|
|
#endif //MBEDTLS_AES_ALT
|
|
#endif //MBEDTLS_AES_ALT_H
|