[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
编程语言
> 详细
嵌入式设备中支持国密算法的方法(三)
时间:
2019-06-25 12:13:08
阅读:
157
评论:
0
收藏:
0
[点我收藏+]
本篇文章是介绍国密算法在嵌入式设备中应用方法系列文章的第三篇,介绍移植openssl库到嵌入式设备中的具体方法,当然最终的目的还是使我们的设备能支持国密算法。同上一篇文章中介绍的miracl密码库相比,openssl库的应用更加广泛,资料支持度更好,但是代码体量要大于miracl库。需要再次说明的是,同miracl库一样,openssl的库也并不能直接提供国密算法的接口,我们是利用库中相应的API接口(如椭圆曲线等)来构建自己的国密算法,下面我们具体介绍移植的步骤。
第一步 获取库
作为应用广泛的开源密码库,可以轻松获取源码,
https://www.openssl.org/source/
,若是对openssl库的使用不太熟悉,可以借助使用手册来了解用法:
第二步 利用openssl构建SM算法库
我们构建一个新的工程用以实现国密算法,由于linux下通过makefile编译项目的方式不太直观,我们使用windoes环境下VSstudio编译环境来演示。
首先将openssl库的源码添加到工程文件夹的路径下,其次要在代码中增加文件包含,如下图:
编译正确之后,开始着手构建SM算法的源码了,这一部分的代码是基于国密算法的原理,利用openssl库的接口构建的,这需要开发者了解国密算法原理。限于篇幅,本例中仅截取了作者实现的API,如下图:
整体代码完成之后,我们可以选择生动态库或静态库供调用。此外,若是开发者准备在linux环境下使用gcc或某一嵌入式设备指定的编译工具来完成上述操作,则需要完成更多的工作,比较重要的是,开发者需要手动完成整个编译过程,这需要清楚openssl代码库本身的文件依赖关系,这部分内容作者不做更多介绍。
第三步 将生成的库添加到个人的设备代码中
在上一步中,作者成功完成了国密SM2(对称算法)的动态库制作,如下图:
为了便于介绍,作者整体的库制作过程和测试过程都是在windows环境下完成的,此处生成的.dll动态库也仅能在windows pc下运行。若是开发者在linux环境下完成上述操作,则应该生成.so为后缀的动态库文件,才能成功的添加到嵌入式设备中运行。
这一步代码的实现要根据各自嵌入式硬件设备的特点来实现,在这里不做过多介绍!
嵌入式设备中支持国密算法的方法(三)
原文:https://blog.51cto.com/13520299/2413042
踩
(
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
版权所有
打开技术之扣,分享程序人生!