使用sm2签名并验签efi文件
使用sm2簽名并驗(yàn)簽efi文件
[sbsigntool]是一個(gè)開源的軟件包,他完成了對(duì)efi文件的簽名和驗(yàn)簽工作,其使用的簽名算法是sha256。由于項(xiàng)目需要,我們需要使用國(guó)密的簽名算法sm3,正好用到gmssl的API可以完成相關(guān)工作。
該工具原本是用的pkcs#7的加密標(biāo)準(zhǔn),在簽名的過程可以添加入證書,這是由于其標(biāo)準(zhǔn)決定的(?)。由于在gmssl中使用的sm3簽名的過程中并沒有涉及到證,所以改變過后的工具簽名的時(shí)候并沒有使用到證書,只是使用到了私鑰。在驗(yàn)簽的過程中,讀入證書,并從證書中讀取公鑰,然后進(jìn)行驗(yàn)簽即可。
在該工具包的改寫過程中,感覺以下幾點(diǎn)可以記錄一下:
編譯時(shí)導(dǎo)入環(huán)境變量
在liunx上面編譯源代碼的時(shí)候,會(huì)使用到./configure命令進(jìn)行依賴包的確認(rèn),有時(shí)候可能安裝的軟件包并沒有在系統(tǒng)的路徑下,這時(shí)候可以通過export導(dǎo)入相應(yīng)的文件位置:
需要內(nèi)存分配代碼的編寫
在對(duì)某些代碼進(jìn)行編寫的時(shí)候,可能需要去讀文件或者對(duì)字符串?dāng)?shù)組進(jìn)行賦值,可能需要先傳入一個(gè)空的指針,獲取長(zhǎng)度后,然后分配空間,傳入指針,獲取內(nèi)容。
gmssl生成密鑰和證書方法
完成后的編寫代碼可以在sbsigntool_sm2下載
總結(jié)
以上是生活随笔為你收集整理的使用sm2签名并验签efi文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入理解C/C++函数指针
- 下一篇: C/C++ 函数指针调用函数