Mbed OS Reference
Loading...
Searching...
No Matches
aes.h File Reference

This file contains AES definitions and functions. More...

#include "mbedtls/config.h"
#include <stddef.h>
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  mbedtls_aes_context
 The AES context-type definition. More...
 

Macros

#define MBEDTLS_AES_ENCRYPT   1
 AES encryption. More...
 
#define MBEDTLS_AES_DECRYPT   0
 AES decryption. More...
 
#define MBEDTLS_ERR_AES_INVALID_KEY_LENGTH   -0x0020
 Invalid key length. More...
 
#define MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH   -0x0022
 Invalid data input length. More...
 
#define MBEDTLS_ERR_AES_BAD_INPUT_DATA   -0x0021
 Invalid input data. More...
 
#define MBEDTLS_ERR_AES_FEATURE_UNAVAILABLE   -0x0023
 Feature not available. More...
 
#define MBEDTLS_ERR_AES_HW_ACCEL_FAILED   -0x0025
 AES hardware accelerator failed. More...
 

Typedefs

typedef struct mbedtls_aes_context mbedtls_aes_context
 The AES context-type definition. More...
 

Functions

void mbedtls_aes_init (mbedtls_aes_context *ctx)
 This function initializes the specified AES context. More...
 
void mbedtls_aes_free (mbedtls_aes_context *ctx)
 This function releases and clears the specified AES context. More...
 
int mbedtls_aes_setkey_enc (mbedtls_aes_context *ctx, const unsigned char *key, unsigned int keybits)
 This function sets the encryption key. More...
 
int mbedtls_aes_setkey_dec (mbedtls_aes_context *ctx, const unsigned char *key, unsigned int keybits)
 This function sets the decryption key. More...
 
int mbedtls_aes_crypt_ecb (mbedtls_aes_context *ctx, int mode, const unsigned char input[16], unsigned char output[16])
 This function performs an AES single-block encryption or decryption operation. More...
 
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)
 This function performs an AES-CTR encryption or decryption operation. More...
 
int mbedtls_internal_aes_encrypt (mbedtls_aes_context *ctx, const unsigned char input[16], unsigned char output[16])
 Internal AES block encryption function. More...
 
int mbedtls_internal_aes_decrypt (mbedtls_aes_context *ctx, const unsigned char input[16], unsigned char output[16])
 Internal AES block decryption function. More...
 
void mbedtls_aes_encrypt (mbedtls_aes_context *ctx, const unsigned char input[16], unsigned char output[16])
 Deprecated internal AES block encryption function without return value. More...
 
void mbedtls_aes_decrypt (mbedtls_aes_context *ctx, const unsigned char input[16], unsigned char output[16])
 Deprecated internal AES block decryption function without return value. More...
 

Detailed Description

This file contains AES definitions and functions.

     The Advanced Encryption Standard (AES) specifies a FIPS-approved
     cryptographic algorithm that can be used to protect electronic
     data.

     The AES algorithm is a symmetric block cipher that can
     encrypt and decrypt information. For more information, see
     <em>FIPS Publication 197: Advanced Encryption Standard</em> and
     <em>ISO/IEC 18033-2:2006: Information technology -- Security
     techniques -- Encryption algorithms -- Part 2: Asymmetric
     ciphers</em>.

     The AES-XTS block mode is standardized by NIST SP 800-38E
     <https://nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-38e.pdf>
     and described in detail by IEEE P1619
     <https://ieeexplore.ieee.org/servlet/opac?punumber=4375278>.

Definition in file aes.h.