fabric国密支持

语言: CN / TW / HK

介绍

本文主要介绍fabric国密改造要点、国密改造已完成版本、国密改造后的使用方法,同时,会给出完成国密改造的版本地址,分享给大家使用。

修改要点

1 签名验签改造

这部分改造主要是修改密钥的生命周期管理,包含:密钥生成(keygen.go)、密钥派生(kederiv.go)、密钥加载(keyimport.go)。这些部分添加国密支持后,在sw/new.go的bccsp实例化过程中加入对应的国密处理器类。另外,在sw/fileks.go中将密钥写入文件或者从文件中载入密钥的部分添加国密类型密钥的支持。

2 证书改造

这部分改造相对比较简单,对原逻辑侵入性非常小。我们自研了一套扩展了国密证书格式的x509库,只需将原来依赖的golang自带的x509库路径替换成我们提供的库路径即可。

3 grpc改造

这部分改造与证书类型,对原逻辑侵入性小。我们提供了一套支持国密tls证书的grpc库,替换了vendor目录下原来的库。

国密改造后项目使用说明

编译方式:经过国密改造后的fabric项目,编译过程与原方式相同,通过make peer-docker/orderer-docker/tools-docker 编译好镜像后即可正常使用。

证书工具:cryptogen工具新添加了一个参数sm2,类型为bool,默认为true。sm2参数为true的情况下生成国密证书,sm2参数为false情况下生成的是ecdsa证书。

项目路径

这部分主要提供两个路径,分别为国密库的项目路径和fabric国密改造后的项目路径

1 国密操作库

https://github.com/cetcxinlian/cryptogm

此项目包含sm2、sm3、sm4的国密算法,以及支持国密的x509证书操作库。

1 fabric国密支持代码库

https://gitee.com/suchongming/fabric

此代码库目前针对两个fabric版本做了国密支持,分别为1.4.6和2.0.0。库中的代码编译后可正常运行,使用fabric-sample中的脚本测试,可正常启动和运行。

欢迎关注我们的微信公众号,每天学习Go知识

分享到: