[N32G03x] 国民技术N32G032算法库使用指南

[复制链接]
1113|15
 楼主| Ghorey 发表于 2023-2-24 15:00 | 显示全部楼层 |阅读模式
本文档适用于已下载相关算法的 N32G032 芯片,主要说明该类芯片中算法接口和使用方法。
对于 U32 数据类型参数,若采用 U8 强制转换 U32 形式,则需要确保 U8 地址按字对齐。

1.1. 支持的算法 N32G032 芯片提供的算法如下:
-AES: 加密/解密(AES-128/192/256)
-SM4: 加密/解密
-RNG: 随机数生成

1.2. 基本数据类型
typedef unsigned char bool;
typedef unsigned char u8;
typedef signed char s8;
typedef unsigned short u16;
typedef signed short s16;
typedef unsigned int u32;
typedef signed int s32;
typedef unsigned long long u64;
typedef signed long long s64;

2. AES算法API说明
2.1. 算法库使用方法
算法库使用方法如下:
1. 将 n32g032_aes.h 、 n32g032_algo_common.h 中 ; 将 n32g032_algo_common.lib 、n32g032_aes.lib 程中;
2. 按 2.3 节函数说明调用函数,例程见附录一提供的 demo

2.2. 数据类型定义 #define AES_ECB (0x11111111)
#define AES_CBC (0x22222222)
#define AES_CTR (0x33333333)
#define AES_ENC (0x44444444)
#define AES_DEC (0x55555555)
enum
{
AES_Crypto_OK = 0x0, //AES opreation success
AES_Init_OK = 0x0, //AES Init opreation success
AES_Crypto_ModeError = 0x5a5a5a5a, //Working mode error(Neither ECB nor CBC nor CTR)
AES_Crypto_EnOrDeError, //En&De error(Neither encryption nor decryption)
AES_Crypto_ParaNull, // the part of input(output/iv) Null
AES_Crypto_LengthError, // if Working mode is ECB or CBC,the length of input message must
be 4 times and cannot be zero;
//if Working mode is CTR,the length of input message cannot be
zero; othets: return AES_Crypto_LengthError
......

2.3. 函数接口说明
AES 算法库包含的函数:
uint32_t AES_Init(AES_PARM *parm) AES:初始化
uint32_t AES_Crypto(AES_PARM *parm) AES:加解密函数
void AES_Close(void) AES:关闭函数
void AES_Version(uint8_t *type, uint8_t *customer, uint8_t date[3], uint8_t *version):AES 版本获取函数

2.3.1.AES算法初始化
AES_Init AES 算法初始化
函数原型:uint32_t AES_Init(AES_PARM *parm)
参数说明:parm 输入,指向 AES _PARM 结构体的指针
返回值:AES_Init_OK:运算正确 其他:运算错误
注意事项:1.调用方式请参考附录一。

AES_Crypto AES 算法加解密
函数原型:uint32_t AES_Crypto(AES_PARM *parm)
参数说明:parm 输入,指向 AES _PARM 结构体的指针
返回值:AES_Crypto_OK:运算正确 其他:运算错误
注意事项:在调用本函数前,若还未初始化或已切换到其他算法,先调用 AES_Init 函数;
单片小菜 发表于 2023-2-27 11:40 | 显示全部楼层
这个是直接使用的吗?
还是?
probedog 发表于 2023-2-28 10:00 | 显示全部楼层
可以直接用?
ulystronglll 发表于 2023-3-2 11:20 | 显示全部楼层
这个N32G032性能怎么样              
beacherblack 发表于 2023-3-2 11:50 | 显示全部楼层
这个是集成在ide里面的库吗              
robertesth 发表于 2023-3-3 21:02 | 显示全部楼层
单片机编写程序要不要算**               
usysm 发表于 2023-3-3 21:39 | 显示全部楼层
如何调用相关的算法库?              
qiufengsd 发表于 2023-3-3 21:53 | 显示全部楼层
这个算法可以应用到哪里              
sdlls 发表于 2023-5-7 14:53 | 显示全部楼层
不同的算法库可能对应不同的硬件外设和单片机型号
albertaabbot 发表于 2023-5-7 15:21 | 显示全部楼层
算法库可用于加速执行各种常见操作
juliestephen 发表于 2023-5-7 15:27 | 显示全部楼层
调用算法库函数完成所需操作吧               
iyoum 发表于 2023-5-7 16:06 | 显示全部楼层
这个算法库的运行效率怎么样              
hudi008 发表于 2023-5-7 16:57 | 显示全部楼层
crc算法在单片机上的实现吗              
minzisc 发表于 2023-5-7 17:20 | 显示全部楼层
神经网络如何用单片机实现?              
kkzz 发表于 2023-5-7 18:46 | 显示全部楼层
可以CRC(循环冗余校验)、AES(高级加密标准)等吗
lihuami 发表于 2023-5-7 18:53 | 显示全部楼层
是DSP的执行库吗              
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

19

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部