本篇文章是介紹國密算法在嵌入式設備中應用方法系列文章的第三篇,介紹移植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爲後綴的動態庫文件,才能成功的添加到嵌入式設備中運行。
這一步代碼的實現要根據各自嵌入式硬件設備的特點來實現,在這裏不做過多介紹!
嵌入式設備中支持國密算法的方法(三)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
嵌入式設備中支持國密算法的方法
李阿淇
2019-05-29 13:51:52
國密SM2硬件分組算法
BACKWASH2038
2020-06-07 21:47:48
如何利用加密芯片存儲證書等文件
李阿淇
2020-05-09 15:34:13
Openssl 生成ECC證書及密鑰
李阿淇
2020-04-22 15:12:23
RSA算法的JNI封裝思路
李阿淇
2020-03-20 14:40:21
Windows下安裝Openssl的方法
李阿淇
2020-03-06 14:36:37
怎麼防抄板:從保護固件與安全認證開始
加密芯片和安全芯片
2020-02-22 06:24:29
ATSHA204A基本操作
李阿淇
2020-02-20 14:34:47
Openssl命令行用法簡介
李阿淇
2020-02-20 14:34:47
對NVM區的合理使用
李阿淇
2019-07-28 14:05:06
在Linux環境下搭建CCID測試環境
李阿淇
2019-07-11 14:00:41
嵌入式設備中支持國密算法的方法(二)
李阿淇
2019-06-11 13:50:24
LKT系列加密芯片DES加解密以及OpenSSL DES接口實現加解密
李阿淇
2019-05-10 13:52:29
國密算法SM3與SM4簡介與應用
Pou光明
2020-06-07 07:04:56
高速通用密碼卡之西電捷通綜合性測試分析
ITwarm
2020-02-21 06:37:04