Fabric 证书实现依据 golang 标准库 crypto/x509,tls传输层依据 golang 标准库 crypto/tls,研究中心与 9BaaS国密支持方案是将有关算法实现、x509、tls 部分均置于 fabric层面(如果采用定制golang标准库方案可能会出现第三方库兼容问题),这样不用定制 golang标准库,用户环境考虑本地和 docker 环境也不需要定制hyperledger/fabric-baseimage,同时更易于国际和国家商用密码标准的插件化支持。在 fabric 中 bccsp(blockchain cryptographic serviceprovider)模块提供加密算法相关的支持,在 bccsp/bccsp.go里定义了加密相关的接口。bccsp以工厂模式实现不同加密算法的接入,国密在 bccsp中提供了国密工厂实现。
研究中心与 9baas 平台基于 golang 1.12 的crypto/x509,crypto/tls 定制国密版crypto/x509 ,crypto/tls,基于hyperledger fabric 1.4 在 bccsp 模块下定制国密算法工厂 gmsw,SM2和 SM3算法实现的部分使用同济公开国密算法包,九宽科技研究团队对此算法包进行了全面论证,并向同济国密算法团队提交若干修复意见,为维护算法的权威性贡献智慧。