From 1cebae633df7b3956091c3ea023a2adc84e2da1e Mon Sep 17 00:00:00 2001 From: Andras Slemmer Date: Fri, 29 Jul 2016 16:40:57 +0100 Subject: [PATCH] core: Add utilities for parsing/serialising pubkeys as base58 --- .../main/kotlin/com/r3corda/core/crypto/CryptoUtilities.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/src/main/kotlin/com/r3corda/core/crypto/CryptoUtilities.kt b/core/src/main/kotlin/com/r3corda/core/crypto/CryptoUtilities.kt index f7682c03e2..255ff8ef71 100644 --- a/core/src/main/kotlin/com/r3corda/core/crypto/CryptoUtilities.kt +++ b/core/src/main/kotlin/com/r3corda/core/crypto/CryptoUtilities.kt @@ -146,6 +146,11 @@ fun PrivateKey.signWithECDSA(bitsToSign: ByteArray, publicKey: PublicKey): Digit return DigitalSignature.WithKey(publicKey, signWithECDSA(bitsToSign).bits) } +val ed25519Curve = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.CURVE_ED25519_SHA512) + +fun String.toPublicKey(): PublicKey = EdDSAPublicKey(EdDSAPublicKeySpec(Base58.decode(this), ed25519Curve)) +fun PublicKey.toBase58String() = Base58.encode((this as EdDSAPublicKey).abyte) + fun KeyPair.signWithECDSA(bitsToSign: ByteArray) = private.signWithECDSA(bitsToSign, public) fun KeyPair.signWithECDSA(bitsToSign: OpaqueBytes) = private.signWithECDSA(bitsToSign.bits, public) fun KeyPair.signWithECDSA(bitsToSign: OpaqueBytes, party: Party) = signWithECDSA(bitsToSign.bits, party)