如何在Hyperledger v1.0中获取和使用用户的公钥/私钥?

时间:2017-07-10 02:08:48

标签: hyperledger hyperledger-fabric

我在Hyperledger v1中读到,可以使用加密和通道来强制执行隐私。

我想尝试加密方法来实现这一目标。由于所有注册用户都有私钥/公钥,我计划使用用户的公钥来加密某些数据(后来我计划将其与对称加密相结合,以提高效率)。

另外,我计划使用函数调用者的私钥来执行解密。

如何获取链码内的公钥/私钥?此外,我还计划在NodeJS(链代码之外)中执行加密/解密,因为我正在使用NodeJS SDK for Hyperledger v1。如何通过NodeJS获取公钥/私钥?

2 个答案:

答案 0 :(得分:2)

使用NodeSDK时,您只需从磁盘上的位置加载密钥,并获取签名者(客户端)证书,您可以使用来自ChaincodeStubInterface接口的API,在调用链码时为您提供:

// GetCreator returns `SignatureHeader.Creator` (e.g. an identity)
// of the `SignedProposal`. This is the identity of the agent (or user)
// submitting the transaction.
GetCreator() ([]byte, error)

答案 1 :(得分:2)

首先,我认为您应该知道这些密钥是如何创建的。它有不同的方法,但Hyperledger Fabric为您提供了两个工具来创建这些键:

  • Cryptogen:此工具用于为您的网络实体生成加密材料(x509证书)。这些证书代表身份,它们允许在我们的实体进行通信和交易时进行签名/验证身份验证。
  • Fabric CA:Fabric的一个组件,即将为每个成员颁发证书的CA.

然后,一旦你有了钥匙,就应该管理它们。由于MSP,Fabric项目更容易实现。创建通道时,可以定义对等方的公钥以及这些证书的颁发者的密钥。然后,Fabric管理它们以验证事务。

会员服务提供商(MSP)为我们提供了从验证,身份验证和签名的所有加密机制和协议中抽象出来的可能性。