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

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

Copyright (C) 2010-2019 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.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()

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()

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()

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 aesDecryptBlock(AesContext *context, const uint8_t *input, uint8_t *output)
Decrypt a 16-byte block using AES algorithm.
Definition: aes.c:420
void(* CipherAlgoEncryptBlock)(void *context, const uint8_t *input, uint8_t *output)
Definition: crypto.h:1103
error_t aesInit(AesContext *context, const uint8_t *key, size_t keyLen)
Key expansion.
Definition: aes.c:202
AES algorithm context.
Definition: aes.h:52
#define AES_BLOCK_SIZE
Definition: aes.h:38
void aesEncryptBlock(AesContext *context, const uint8_t *input, uint8_t *output)
Encrypt a 16-byte block using AES algorithm.
Definition: aes.c:310
void(* CipherAlgoDecryptBlock)(void *context, const uint8_t *input, uint8_t *output)
Definition: crypto.h:1104
error_t(* CipherAlgoInit)(void *context, const uint8_t *key, size_t keyLen)
Definition: crypto.h:1100