Fabric系列 - 国密扩展方法

国密算法的相关知识请看:密码学系列 - 国密算法

在Fabric上扩展国密方法

一种是基于Fabric本身扩展国密包

这种改法不用对Golang标准库做任何地改动,所有的修改都在Fabric项目源码上进行

  • 其一,把国密的库进行移植,封装gm-crypto
  • 其二,扩展Fabric现有的bccsp模块;
  • 其三,修改x509证书相关的地方。
    • Fabric-CA主要是为了实现对加入联盟链的成员的身份控制以及数据生成保管。Fabric-CA中:
      • Lib,主要是接口的实现,主要在解析申请证书请求以及签发证书流程要替换为国密算法;
      • Util,该包数据工具类,主要在证书的编解码等操作中扩展国密算法;
      • Vendor中,替换对Fabric的包的引用,提供对国密算法的支持

在Fabric中扩展国密算法,大概有以下几个方面:

  • 第一,Fabric框架扩展支持国密算法;
  • 第二,Fabric-CA扩展支持国密算法;
  • 第三,Fabric-SDK扩展支持国密算法;
  • 第四,fabric-baseimage、fabric-baseos镜像扩展支持国密算法;
  • 第五,Fabirc框架扩展支持加载.so库。

另一种方法是基于Golang标准库扩展国密

这种方案是直接扩充Golang标准库,改法更为清晰。

基于Go语言的国密算法:

同济研究院国密算法

SM2: 国密椭圆曲线算法库

  • 支持Generate Key, Sign, Verify基础操作
  • 支持加密和不加密的pem文件格式(加密方法参见RFC5958, 具体实现参加代码)
  • 支持证书的生成,证书的读写(接口兼容rsa和ecdsa的证书)
  • 支持证书链的操作(接口兼容rsa和ecdsa)
  • 支持crypto.Signer接口

SM3: 国密Hash算法库(摘要算法)

  • 支持基础的sm3Sum操作
  • 支持hash.Hash接口

SM4: 国密分组密码算法库

  • 支持Generate Key, Encrypt, Decrypt基础操作
  • 提供Cipher.Block接口
  • 支持加密和不加密的pem文件格式(加密方法为pem block加密, 具体函数为x509.EncryptPEMBlock)

往期精彩回顾:
区块链知识系列
密码学系列
共识系列
公链调研系列
以太坊系列
EOS系列
智能合约系列
Token系列

你可能感兴趣的:(密码学系列,Fabric系列,Fabric,国密,Fabric-CA,gmsm,golang)