41 lines
1.3 KiB
C
41 lines
1.3 KiB
C
#include "../inc/data_type_def.h"
|
|
#include "../inc/log.h"
|
|
#include "../inc/osel_arch.h"
|
|
#include "../inc/aes.h"
|
|
|
|
// 全局变量
|
|
static aes_context AesContext; // 密钥表
|
|
static uint8_t aBlock[] = {0x00, 0x00, 0x00, 0xcc, 0xff, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; // 数据块
|
|
static uint8_t sBlock[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; // 存放输出结果
|
|
|
|
int32_t main(void)
|
|
{
|
|
uint8_t buf[16] = {0x00};
|
|
uint8_t size = ARRAY_LEN(buf);
|
|
uint8_t key[] = {
|
|
0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
|
|
0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C}; // 密钥
|
|
|
|
// 初始化密文
|
|
for (int i = 0; i < size; i++)
|
|
{
|
|
buf[i] = i;
|
|
}
|
|
|
|
// 设置预密钥
|
|
osel_memset(AesContext.ksch, 0, ARRAY_LEN(AesContext.ksch));
|
|
aes_set_key(key, 16, &AesContext);
|
|
|
|
// 加密
|
|
osel_memcpy(aBlock, buf, size);
|
|
aes_encrypt(aBlock, sBlock, &AesContext);
|
|
LOG_HEX(sBlock, ARRAY_LEN(sBlock)); // 打印加密结果:50 fe 67 cc 99 6d 32 b6 da 09 37 e9 9b af ec 60
|
|
|
|
// 解密
|
|
osel_memcpy(aBlock, sBlock, size);
|
|
aes_decrypt(aBlock, sBlock, &AesContext);
|
|
LOG_HEX(sBlock, ARRAY_LEN(sBlock)); // 打印解密结果:00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
|
|
}
|