[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
编程语言
> 详细
嵌入式设备中支持国密算法的方法(二)
时间:
2019-06-10 17:29:29
阅读:
179
评论:
0
收藏:
0
[点我收藏+]
上一篇文章中我们为大家介绍了嵌入式设备中支持国密算法的几种方法。本篇我们详细的介绍一下第一种方法:移植Miracl库的具体操作步骤。
第一步 获取源码
MIRACL密码库是开源软件,可以直接到官网下载,也可在csdn等论坛中获取。
第二步 利用MIRACL库函数实现SM2算法
实现sm2的功能需要用到MIRACL库中的36个源文件,例如mraes.c、mrec2.c、mrarth0.c、mrcore.c、mrshs.c、mezzn2.c、mrxgcd.c、mrgcm.c、mrio1.c等。
然后需要新建一个sm2.c文件、sm2.h,用于实现sm2功能函数;一个sm3.c文件、一个sm3.h文件,用于实现sm3功能函数(之所以要增加sm3的功能是因为sm2算法中需要sm3计算hash值功能。
下面给出生成密钥对的示例,具体的函数定义可以联系凌科芯安获取。
现在给出实现的函数接口功能,
sm3_e
sm2_keygen 生成密钥对
sm2_sign 签名函数
sm2_verify 验证签名
sm2_encrypt 加密函数
sm2_decrypt 解密函数
void sm2_keyagreement_a1_3密钥协商的发起方调用此函数产生一对临时公钥(kx1, ky1)和相应的随机数
sm2_keyagreement_b1_9
密钥协商的接收方调用此函数协商出密钥kbbuf
第三步 编译动态库
在linux环境下,需要先制作makefile文件,针对特定的编译器环境,只需要修改cc等命令的定义来支持指定编译器即可。以arm-linux-gcc编译工具为例器编译文件,其编译指令如下图
之后运行指令脚本,./armlinux即可得到动态库文件。
在windows环境下,直接在VS项目中选择编译成动态库即可,配置生成动态库如下图
第四步 测试功能
最后,需要验证一下SM2.dll锁提供的SM2接口函数运算结果的正确性。
在工程中添加动态库的支持,即可调用功能并测试了。
下图在为输出显示测试结果,测试通过。
嵌入式设备中支持国密算法的方法(二)
原文:https://blog.51cto.com/13520299/2406929
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!