zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    电脑无法开机,用一个U盘先备份C盘部分重要文件并重装Win10系统的教程?
    如何用WINPE备份电脑系统;电脑备份 听语音
    如何使用ghost备份系统?
    编程之美初赛第一场 活动中心
    从拟物到简约 ------谈站点设计风格的变革
    算法之回溯思想
    【工业串口和网络软件通讯平台(SuperIO)教程】一.通讯机制
    为什么要使用CMake+VS编译OpenCV的源代码
    Json实现异步请求(提交评论)
    kendo AutoComplete实现多筛选条件
  • 原文地址:https://www.cnblogs.com/informatics/p/7522445.html
Copyright © 2011-2022 走看看