i.MX8MP开发板中移植OpenSSL工具

2022年08月25日 10:07    发布者:繁花之语
飞凌嵌入式OKMX8MP-C开发板采用NXP i.MX8M Plus高性能处理器开发,AI计算能力高达2.3TOPS,可满足轻量级边缘计算需求。同时灵活的I/O接口配置和先进丰富的多媒体资源,方便客户应用程序开发。






https://pic1.zhimg.com/80/v2-dfecff8a850081933e63f3c5c22a80de_720w.jpg​














在OKMX8MP-C开发板中,飞凌移植了OpenSSL工具,OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库、应用程序以及密码算法库。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。




作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。




今天小编为大家分享一些OpenSSL在OKMX8MP-C开发板上的简单应用




OpenSSL分为交互模式批处理模式,直接输入OpenSSL然后按回车键进入交互模式,输入带命令选项的OpenSSL进入批处理模式。




1

交互模式












https://pic2.zhimg.com/80/v2-c158e096956039f512060bf6e7314aaf_720w.png​














version:用来打印版本以及 OpenSSL其他信息。

用法:version-

举例:version-a打印所有信息






https://pic4.zhimg.com/80/v2-81ff50e207be33548168b94ed19288cb_720w.png​














版本号和版本发布日期:OpenSSL1.1.1g,2020年4月21日使用库构建的选项:options存储证书和私钥的目录:OPENSSLDIR

passwd:生成各种口令密文。

用法: opensslpasswd [-crypt] [-1] [-apr1] [-salt  string] [-in file] [-stdin][-noverify] [-quiet] [-table] {password}

举例: passwd-cryp 默认选项,生成标准的unix口令密文。






https://pic2.zhimg.com/80/v2-e114ce9a8b2ac044a3d9069572abd332_720w.png​














passwd-1 生成md5口令密文。






https://pic1.zhimg.com/80/v2-d616c72f4825828133d4f4f79bc157c8_720w.png​














DSA:用于处理DSA密钥、格式转换和打印信息。

用法:openssldsa [-inform PEM|DER] [-outform PEM|DER] [-in filename][-passinarg] [-out filename] [-passout arg] [-des] [-des3] [-idea][-text][-noout] [-modulus] [-engine id]

举例:dsaparam -out dsaparam.pem 1024  生成DSA参数文件。






https://pic2.zhimg.com/80/v2-fc56076f9f4f8b71497ea6bda14bdd41_720w.png​









添加图片注释,不超过 140 字(可选)




gendsa-out dsakey.pem dsaparam.pem 根据DSA参数文件生成DSA密钥。






https://picx.zhimg.com/80/v2-c7d9b348ab205c4450902ee07d9ed073_720w.png​

















以上就是交互模式的简单使用方式,下面小编来为大家介绍批处理模式下的一些功能。




2

批处理模式







生成密码功能

openssl rand: 用来产生伪随机字节

用法:openssl rand [-out file] [-base64] [-hex] num

-out file   写入文件

-base64   base64编码输出

-hex         16进制编码输出

举例:以生成base64编码的随机数为例






https://pic2.zhimg.com/80/v2-786a1ab3afd186ec2c47bd27b7da31ba_720w.png​

















消息摘要算法应用

openssl dgst:用于数据摘要

用法:openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1 ] [-c] [-d ] [-hex] [-binary] [-out filename] [-sign filename] [-passin arg] [-verify filename] [-prverify filename][-signature filename ]

举例:用SHA1算法计算文件openssl1.txt的哈希值。






https://pica.zhimg.com/80/v2-89ebc4783b00e0466563cafe86c17bf4_720w.png​














用SHA1算法计算文件openssl1.txt的哈希值,输出到文件sha1.txt。






https://pic3.zhimg.com/80/v2-e88c3b325b3e7b339c53f4cfa0894a1c_720w.png​

















编解码应用

给文件openssl1.txt用base64编码,输出到文件jiami.txt。






https://picx.zhimg.com/80/v2-7a54d52897f05c3ea9a870cc60ebb8b7_720w.png​

















最后,小编为大家介绍一种测试OpenSSL性能的方法。




OpenSSL性能测试

openssl speed:此命令用于测试库的性能。

用法:openssl speed

测试生成不同的密钥的速度。




以RSA-2048为例,分别测试OpenSSL在OKMX8MM-C、OKMX8MQ-C 和 OKMX8MP-C这3款开发板上的性能对比,给大家提供一个参考。




OKMX8MM-C开发板






https://pica.zhimg.com/80/v2-d77bc1d67777902063aca55d00ef7603_720w.png​














OKMX8MQ-C开发板




















OKMX8MP-C开发板






https://pica.zhimg.com/80/v2-fbfb75aa2bcef7f9077040e9d13413c3_720w.png​

















从以上测试结果可以看出,OKMX8MM-C开发板私钥每秒生成84.5次OKMX8MQ-C开发板私钥每秒生成120.5次,而OKMX8MP-C开发板的私钥每秒生成148.1次,由此可见,在OpenSSL性能这一方面,OKMX8MP-C开发板获胜。https://www.forlinx.com/