GB35114---基于openssl加密库进行开发(一)
? ? 《GB+35114-2017+公共安全視頻監控聯網信息安全技術要求.pdf》標準規定了公共安全領域視頻監控聯網視頻信息以及控制信令信息安全保護的技術要求,包括公共安全視頻監控聯網信息安全系統的互聯結構、證書和密鑰要求、基本功能要求、性能要求等技術要求。
? ? 既然是信息安全加密,那我們就來看看里面涉及到的算法要求:
里面涉及到非對稱的SM2、對稱SM1、SM4以及hashSM3。國密全家桶。
| ? | 作用 |
| SM2 | 身份認證、數字簽名、密鑰協商 |
| SM1/SM4 | 視頻數據加密(SM1/SM4 OFB) SM4(ECB)密鑰協商數據的加密 |
| SM3 | 完整性校驗 |
| 隨機數生成算法 | 密鑰協商,身份認證 |
以下內容如果你是用軟件加密的話可以參考
openssl-1.1.1d版的已經集成了國密相關的算法。我研究過mbed,gmssl最終選定了openssl作為加密庫。
下載地址https://www.openssl.org/source/
openssl的移植:
./config no-asm no-async shared --cross-compile-prefix=arm-hisiv500-linux-直接make會報錯:
arm-hisiv500-linux-gcc ?-I. -Iinclude -fPIC -pthread -m64 -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSLDIR="\"/usr/local/ssl\"" -DENGINESDIR="\"/usr/local/lib/engines-1.1\"" -DNDEBUG ?-MMD -MF apps/app_rand.d.tmp -MT apps/app_rand.o -c -o apps/app_rand.o apps/app_rand.c
arm-hisiv500-linux-gcc: error: unrecognized command line option '-m64'
Makefile:708: recipe for target 'apps/app_rand.o' failed
make[1]: *** [apps/app_rand.o] Error 1
make[1]: Leaving directory '/home/bob/share/openssl-1.1.1d'
Makefile:174: recipe for target 'all' failed
make: *** [all] Error 2
?
修改Makefile,126、127行去掉-m64。
編譯完成在目錄下會直接生成.a的兩個靜態庫和.so的兩個動態庫;
靜態庫內已經引出了國密相關函數,如果你們項目使用的是靜態庫,那么國密sm2、sm3相關算法可以直接使用。如果你們項目使用的是動態庫,我們還需要自己引出相關函數。
有錯誤請留言,謝謝
下篇再說吧
GB35114---基于openssl加密庫進行開發(二)
---bob? 2020/3/12 14:54
?
總結
以上是生活随笔為你收集整理的GB35114---基于openssl加密库进行开发(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 批量更改图片文件的格式有什么方法?
- 下一篇: 乌龟git安装和使用