-1

以下代码返回“不匹配!” 错误:

pub, priv := GenerateKeyPair(2048)
ct1 := EncryptWithPublicKey([]byte("abc"), pub)
err := stub.PutState("ct", ct1)
ct2 := stub.GetState("ct")
if string(ct1[:]) != string(ct2[:]) {
    return shim.Error("does not match!") //error returned
}
pt := DecryptWithPrivateKey(ct2, priv)

使用的 RSA 库:https ://gist.github.com/miguelmota/3ea9286bd1d3c2a985b67cac4ba2130a

如果字符串比较部分被注释掉,那么解密函数返回错误“crypto/rsa解密错误”。

以下代码完美运行:

pub, priv := GenerateKeyPair(2048)
ct := EncryptWithPublicKey([]byte("abc"), pub)
pt := DecryptWithPrivateKey(ct, priv)
4

1 回答 1

1

Fabric 事务的工作方式意味着您无法从事务期间写入 (PutState) 的状态数据库中读取 (GetState) 值。读取 (GetState) 将始终返回事务开始之前的值。

如果您需要,以下有关事务流序列图的链接将为您提供有关事务的更多背景信息。

于 2019-04-16T08:47:14.207 回答