我在Hyperledger v1中读到,可以使用加密和通道来强制执行隐私。
我想尝试加密方法来实现这一目标。由于所有注册用户都有私钥/公钥,我计划使用用户的公钥来加密某些数据(后来我计划将其与对称加密相结合,以提高效率)。
另外,我计划使用函数调用者的私钥来执行解密。
如何获取链码内的公钥/私钥?此外,我还计划在NodeJS(链代码之外)中执行加密/解密,因为我正在使用NodeJS SDK for Hyperledger v1。如何通过NodeJS获取公钥/私钥?
答案 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为您提供了两个工具来创建这些键:
然后,一旦你有了钥匙,就应该管理它们。由于MSP,Fabric项目更容易实现。创建通道时,可以定义对等方的公钥以及这些证书的颁发者的密钥。然后,Fabric管理它们以验证事务。
会员服务提供商(MSP)为我们提供了从验证,身份验证和签名的所有加密机制和协议中抽象出来的可能性。