Следующий фрагмент кода возвращает "не совпадает!"ошибка:
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)