aes.c File Reference

AES (Advanced Encryption Standard) More...

#include "core/crypto.h"
#include "cipher/aes.h"

Go to the source code of this file.

Macros

#define TRACE_LEVEL   CRYPTO_TRACE_LEVEL
 

Functions

error_t aesInit (AesContext *context, const uint8_t *key, size_t keyLen)
 Key expansion. More...
 
void aesEncryptBlock (AesContext *context, const uint8_t *input, uint8_t *output)
 Encrypt a 16-byte block using AES algorithm. More...
 
void aesDecryptBlock (AesContext *context, const uint8_t *input, uint8_t *output)
 Decrypt a 16-byte block using AES algorithm. More...
 

Variables

const CipherAlgo aesCipherAlgo
 

Detailed Description

AES (Advanced Encryption Standard)

License

Copyright (C) 2010-2018 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneCrypto Open.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Description

AES is an encryption standard based on Rijndael algorithm, a symmetric block cipher that can process data blocks of 128 bits, using cipher keys with lengths of 128, 192, and 256 bits. Refer to FIPS 197 for more details

Author
Oryx Embedded SARL (www.oryx-embedded.com)
Version
1.9.0

Definition in file aes.c.

Macro Definition Documentation

◆ TRACE_LEVEL

#define TRACE_LEVEL   CRYPTO_TRACE_LEVEL

Definition at line 36 of file aes.c.

Function Documentation

◆ aesDecryptBlock()

void aesDecryptBlock ( AesContext context,
const uint8_t *  input,
uint8_t *  output 
)

Decrypt a 16-byte block using AES algorithm.

Parameters
[in]contextPointer to the AES context
[in]inputCiphertext block to decrypt
[out]outputPlaintext block resulting from decryption

Definition at line 414 of file aes.c.

◆ aesEncryptBlock()

void aesEncryptBlock ( AesContext context,
const uint8_t *  input,
uint8_t *  output 
)

Encrypt a 16-byte block using AES algorithm.

Parameters
[in]contextPointer to the AES context
[in]inputPlaintext block to encrypt
[out]outputCiphertext block resulting from encryption

Definition at line 304 of file aes.c.

◆ aesInit()

error_t aesInit ( AesContext context,
const uint8_t *  key,
size_t  keyLen 
)

Key expansion.

Parameters
[in]contextPointer to the AES context to initialize
[in]keyPointer to the key
[in]keyLenLength of the key
Returns
Error code

Definition at line 200 of file aes.c.

Variable Documentation

◆ aesCipherAlgo

const CipherAlgo aesCipherAlgo
Initial value:
=
{
"AES",
sizeof(AesContext),
NULL,
NULL,
}
AES algorithm context.
Definition: aes.h:50
void(* CipherAlgoDecryptBlock)(void *context, const uint8_t *input, uint8_t *output)
Definition: crypto.h:1030
error_t(* CipherAlgoInit)(void *context, const uint8_t *key, size_t keyLen)
Definition: crypto.h:1026
void aesDecryptBlock(AesContext *context, const uint8_t *input, uint8_t *output)
Decrypt a 16-byte block using AES algorithm.
Definition: aes.c:414
#define AES_BLOCK_SIZE
Definition: aes.h:36
void(* CipherAlgoEncryptBlock)(void *context, const uint8_t *input, uint8_t *output)
Definition: crypto.h:1029
error_t aesInit(AesContext *context, const uint8_t *key, size_t keyLen)
Key expansion.
Definition: aes.c:200
void aesEncryptBlock(AesContext *context, const uint8_t *input, uint8_t *output)
Encrypt a 16-byte block using AES algorithm.
Definition: aes.c:304

Definition at line 178 of file aes.c.