Hyperledger Fabric密碼模塊系列之BCCSP(一)


   Fabric作為IBM主導的區塊鏈平台,可謂是聯盟鏈中的一枝獨秀,現如今已經有100多個大型國際銀行、金融以及科技公司的加盟。與其說Fabric是區塊鏈的一種平台,倒不如說是一個區塊鏈框架更加精確,因為如果你漸漸了解熟悉之后,你會發現他並不像Bitcoin和Ethereum一樣,可以作為單獨的應用來使用。而Fabric就像是其他框架一樣,你必須通過智能合約來實現自己的業務才能使用,包括代幣(如果你的業務場景需要的話)也需要自己小心翼翼的去自主實現。還有個重要的特點就是Fabric是插件化的,你可以方便的實現自己的共識算法、密碼算法以及成員服務等,哪里需要換哪里。

  這里提到了密碼算法插件化(可插拔),對,我們接下來的日子里就針對Fabric的密碼算法模塊BCCSP(blockchain crypto service provider)進行分析,並且將SMx(國密算法)系列算法進行適配。

————————————進入正題——————————————————

bccsp目錄結構如下

簡單介紹一下:

bccsp.go:  主要接口聲明的文件,比如BCCSP、Key、各種Opts等, 其中BCCSP接口包含了Sign Verify Encrypt Decrypt Hash KeyGen KeyDerive等

sw: bccsp的純軟件實現,內部實現通過調用go原生支持的密碼算法,並且提供了一個keystore來保存密鑰,密鑰默認保存在/tmp目錄下

pkcs11: bccsp的pkcs11實現,通過調用pkcs11接口來實現相關的密碼操作,僅支持ecdsa、rsa以及aes算法。密鑰保存在pkcs11通過pin口令保護的數據庫或者硬件設備中。

utils:工具包,密鑰編碼轉換等

signer: 實現了go的crypto.signer接口

factory:factory是bccsp的一個工廠,可以通過這個工廠返回一個具體的bccsp實例,比如上面說的sw或者pkcs11,如果添加了自己的bccsp實現,也要講該bccsp添加到factory中。

 

--------------------------------------------------

Well begun is half done.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM