介紹
????????本文主要介紹fabric國(guó)密改造要點(diǎn)低滩、國(guó)密改造已完成版本、國(guó)密改造后的使用方法欺抗,同時(shí)殴胧,會(huì)給出完成國(guó)密改造的版本地址,分享給大家使用。
修改要點(diǎn)
????1 簽名驗(yàn)簽改造
????????這部分改造主要是修改密鑰的生命周期管理团滥,包含:密鑰生成(keygen.go)竿屹、密鑰派生(kederiv.go)、密鑰加載(keyimport.go)灸姊。這些部分添加國(guó)密支持后拱燃,在sw/new.go的bccsp實(shí)例化過(guò)程中加入對(duì)應(yīng)的國(guó)密處理器類。另外力惯,在sw/fileks.go中將密鑰寫入文件或者從文件中載入密鑰的部分添加國(guó)密類型密鑰的支持碗誉。
????2 證書改造
????????這部分改造相對(duì)比較簡(jiǎn)單,對(duì)原邏輯侵入性非常小父晶。我們自研了一套擴(kuò)展了國(guó)密證書格式的x509庫(kù)哮缺,只需將原來(lái)依賴的golang自帶的x509庫(kù)路徑替換成我們提供的庫(kù)路徑即可。
????3 grpc改造
????????這部分改造與證書類型甲喝,對(duì)原邏輯侵入性小尝苇。我們提供了一套支持國(guó)密tls證書的grpc庫(kù),替換了vendor目錄下原來(lái)的庫(kù)埠胖。
國(guó)密改造后項(xiàng)目使用說(shuō)明
????????編譯方式:經(jīng)過(guò)國(guó)密改造后的fabric項(xiàng)目糠溜,編譯過(guò)程與原方式相同,通過(guò)make peer-docker/orderer-docker/tools-docker 編譯好鏡像后即可正常使用直撤。
????????證書工具:cryptogen工具新添加了一個(gè)參數(shù)sm2非竿,類型為bool,默認(rèn)為true谋竖。sm2參數(shù)為true的情況下生成國(guó)密證書红柱,sm2參數(shù)為false情況下生成的是ecdsa證書。
項(xiàng)目路徑
這部分主要提供兩個(gè)路徑蓖乘,分別為國(guó)密庫(kù)的項(xiàng)目路徑和fabric國(guó)密改造后的項(xiàng)目路徑
????1 國(guó)密操作庫(kù)
此項(xiàng)目包含sm2豹芯、sm3、sm4的國(guó)密算法驱敲,以及支持國(guó)密的x509證書操作庫(kù)。
????1 fabric國(guó)密支持代碼庫(kù)
此代碼庫(kù)目前針對(duì)兩個(gè)fabric版本做了國(guó)密支持宽闲,分別為1.4.6和2.0.0众眨。庫(kù)中的代碼編譯后可正常運(yùn)行,使用fabric-sample中的腳本測(cè)試容诬,可正常啟動(dòng)和運(yùn)行娩梨。