rt-thread/bsp/acm32/acm32f4xx-nucleo/libraries/HAL_Driver/Inc/HAL_AES.h

95 lines
2.8 KiB
C
Raw Blame History

/***********************************************************************
* All rights reserved.
* Filename : aes.h
* Description : aes driver header file
* Author(s) : Eric
* version : V1.0
* Modify date : 2016-03-24
***********************************************************************/
#ifndef __AES_H__
#define __AES_H__
#include "ACM32Fxx_HAL.h"
#define AES_ENCRYPTION 1
#define AES_DECRYPTION 0
#define AES_ECB_MODE 0
#define AES_CBC_MODE 1
#define AES_SWAP_ENABLE 1
#define AES_SWAP_DISABLE 0
#define AES_NORMAL_MODE 0x12345678
#define AES_SECURITY_MODE 0
#define AES_KEY_128 0
#define AES_KEY_192 1
#define AES_KEY_256 2
#define AES_FAIL 0x00
#define AES_PASS 0xa59ada68
#define BIT_AES (1<<28)
/************************************************************************
* function : delay
* Description: delay for a while.
* input :
* count: count to decrease
* return: none
************************************************************************/
extern void delay(uint32_t count);
/******************************************************************************
* Name: HAL_AES_SetKey
* Function: set key of AES
* Input:
keyin -- pointer to buffer of key
key_len -- select length of key(AES_KEY_128/ AES_KEY_192/ AES_KEY_256)
swap_en -- AES_SWAP_ENABLE, AES_SWAP_DISABLE
* Return: None
*******************************************************************************/
void HAL_AES_SetKey(UINT32 *keyin, UINT8 key_len, UINT8 swap_en);
void HAL_AES_SetKey_U8(UINT8 *keyin, UINT8 key_len, UINT8 swap_en);
/******************************************************************************
Name: HAL_AES_Crypt
Function: Function for AES encryption and decryption
Input:
indata -- pointer to buffer of input
outdata -- pointer to buffer of result
block_len -- block(128bit) length for aes cryption
operation -- AES_ENCRYPTION,AES_DECRYPTION
mode -- AES_ECB_MODE, AES_CBC_MODE,
iv -- initial vector for CBC mode
security_mode -- AES_NORMAL_MODE, AES_SECURITY_MDOE<4F><45>
Return: None
*******************************************************************************/
uint32_t HAL_AES_Crypt(
uint32_t *indata,
uint32_t *outdata,
uint32_t block_len,
uint8_t operation,
uint8_t mode,
uint32_t *iv,
uint32_t security_mode
);
uint32_t HAL_AES_Crypt_U8(
uint8_t *indata,
uint8_t *outdata,
uint32_t block_len,
uint8_t operation,
uint8_t mode,
uint8_t *iv,
uint32_t security_mode
);
#endif
/******************************************************************************
* end of file
*******************************************************************************/