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

__weak_func error_t aesInit (AesContext *context, const uint8_t *key, size_t keyLen)
 Key expansion. More...
 
__weak_func void aesEncryptBlock (AesContext *context, const uint8_t *input, uint8_t *output)
 Encrypt a 16-byte block using AES algorithm. More...
 
__weak_func 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

SPDX-License-Identifier: GPL-2.0-or-later

Copyright (C) 2010-2022 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
2.1.6

Definition in file aes.c.

Macro Definition Documentation

◆ TRACE_LEVEL

#define TRACE_LEVEL   CRYPTO_TRACE_LEVEL

Definition at line 38 of file aes.c.

Function Documentation

◆ aesDecryptBlock()

__weak_func 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 420 of file aes.c.

◆ aesEncryptBlock()

__weak_func 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 310 of file aes.c.

◆ aesInit()

__weak_func 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 202 of file aes.c.

Variable Documentation

◆ aesCipherAlgo

const CipherAlgo aesCipherAlgo
void(* CipherAlgoEncryptBlock)(void *context, const uint8_t *input, uint8_t *output)
Definition: crypto.h:836
@ CIPHER_ALGO_TYPE_BLOCK
Definition: crypto.h:802
__weak_func void aesEncryptBlock(AesContext *context, const uint8_t *input, uint8_t *output)
Encrypt a 16-byte block using AES algorithm.
Definition: aes.c:310
AES algorithm context.
Definition: aes.h:53
#define AES_BLOCK_SIZE
Definition: aes.h:38
void(* CipherAlgoDecryptBlock)(void *context, const uint8_t *input, uint8_t *output)
Definition: crypto.h:837
__weak_func error_t aesInit(AesContext *context, const uint8_t *key, size_t keyLen)
Key expansion.
Definition: aes.c:202
error_t(* CipherAlgoInit)(void *context, const uint8_t *key, size_t keyLen)
Definition: crypto.h:833
__weak_func void aesDecryptBlock(AesContext *context, const uint8_t *input, uint8_t *output)
Decrypt a 16-byte block using AES algorithm.
Definition: aes.c:420