Corda - декодирование ключей Base58 publi c не работает - PullRequest
0 голосов
/ 16 июня 2020

Декодирование Base58 publi c ключей обратно в PublicKey экземпляры, похоже, не работает:

parsePublicKeyBase58("DLG9nscvKPbgagoLP7jr4oc5FygazKr7pdADZMGFizmpV8")

Исключение в потоке «main» java .lang.IllegalArgumentException: не удалось для построения последовательности из байта []: неизвестный тег 9 обнаружен в org.bouncycastle.asn1.ASN1Sequence.getInstance (Неизвестный источник) в org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getInstance (Неизвестный источник) в net .corda.core .crypto.Crypto.decodePublicKey (Crypto.kt: 343) в net .corda.core.utilities.EncodingUtils.parsePublicKeyBase58 (EncodingUtils.kt: 81) в test.Program $ Companion.main (Program.kt: 15) в test.Program.main (Program.kt)

Что здесь не так?

Какую ошибку вы получаете с этим - Sneha Damle?

parsePublicKeyBase58("G9nscvKPbgagoLP7jr4oc5FygazKr7pdADZMGFizmpV8")

Исключение в потоке «main» java .lang.IllegalArgumentException: не удалось построить последовательность из байта []: объект длиной 31 DEF усечен на 1 в org.bouncycastle.asn1.ASN1Sequence.getInstance (Неизвестно Источник) на org.bouncycastle.asn1.x5 09.SubjectPublicKeyInfo.getInstance (Неизвестный источник) в net .corda.core.crypto.Crypto.decodePublicKey (Crypto.kt: 343) в net .corda.core.utilities.EncodingUtils.parsePublicKeyBasekt: 81s.Utils. ) на test.ProgramKt.main (Program.kt: 6)

1 Ответ

1 голос
/ 16 июня 2020

Вероятно, вы используете неверную строку Base58. Я сделал следующее, и это сработало.

Закодировал Publi c Ключ к Base58

Base58.encode(party.getOwningKey().getEncoded()).toString();

Это дало мне строку GfHq2tTVk9z4eXgyH7WThpV3Qn7zdCm4cKw8J5x8kVGnVkGtgAmh3KKE7EN4

Декодировал его:

PublicKey publicKey = EncodingUtils.parsePublicKeyBase58("GfHq2tTVk9z4eXgyH7WThpV3Qn7zdCm4cKw8J5x8kVGnVkGtgAmh3KKE7EN4");
...