mirror of
https://github.com/corda/corda.git
synced 2025-01-29 15:43:55 +00:00
Minor: introduce a generateKeyPair() function that wraps the Java API, so we can switch algorithm more easily later.
This commit is contained in:
parent
8d1b318370
commit
0665492645
@ -123,4 +123,7 @@ fun PublicKey.toStringShort(): String {
|
||||
|
||||
// Allow Kotlin destructuring: val (private, public) = keypair
|
||||
operator fun KeyPair.component1() = this.private
|
||||
operator fun KeyPair.component2() = this.public
|
||||
operator fun KeyPair.component2() = this.public
|
||||
|
||||
/** A simple wrapper that will make it easier to swap out the EC algorithm we use in future */
|
||||
fun generateKeyPair() = KeyPairGenerator.getInstance("EC").genKeyPair()
|
@ -10,11 +10,11 @@ package core
|
||||
|
||||
import co.paralleluniverse.fibers.Suspendable
|
||||
import core.crypto.DigitalSignature
|
||||
import core.crypto.generateKeyPair
|
||||
import core.messaging.MessagingService
|
||||
import core.messaging.NetworkMap
|
||||
import core.serialization.SerializedBytes
|
||||
import java.security.KeyPair
|
||||
import java.security.KeyPairGenerator
|
||||
import java.security.PrivateKey
|
||||
import java.security.PublicKey
|
||||
|
||||
@ -92,7 +92,7 @@ interface TimestamperService {
|
||||
// We define a dummy authority here to allow to us to develop prototype contracts in the absence of a real authority.
|
||||
// The timestamper itself is implemented in the unit test part of the code (in TestUtils.kt).
|
||||
object DummyTimestampingAuthority {
|
||||
val key = KeyPairGenerator.getInstance("EC").genKeyPair()
|
||||
val key = generateKeyPair()
|
||||
val identity = Party("The dummy timestamper", key.public)
|
||||
}
|
||||
|
||||
|
@ -12,10 +12,10 @@ import com.google.common.util.concurrent.Futures
|
||||
import com.google.common.util.concurrent.ListenableFuture
|
||||
import com.google.common.util.concurrent.MoreExecutors
|
||||
import core.Party
|
||||
import core.crypto.generateKeyPair
|
||||
import core.crypto.sha256
|
||||
import core.node.TimestamperNodeService
|
||||
import core.utilities.loggerFor
|
||||
import java.security.KeyPairGenerator
|
||||
import java.time.Instant
|
||||
import java.util.*
|
||||
import java.util.concurrent.Executor
|
||||
@ -126,7 +126,7 @@ public class InMemoryNetwork {
|
||||
check(timestampingAdvert == null)
|
||||
val (handle, builder) = createNode(manuallyPumped)
|
||||
val node = builder.start().get()
|
||||
val key = KeyPairGenerator.getInstance("EC").genKeyPair()
|
||||
val key = generateKeyPair()
|
||||
val identity = Party("Unit test timestamping authority", key.public)
|
||||
TimestamperNodeService(node, identity, key)
|
||||
timestampingAdvert = LegallyIdentifiableNode(handle, identity)
|
||||
|
@ -10,8 +10,8 @@ package core.node
|
||||
|
||||
import core.KeyManagementService
|
||||
import core.ThreadBox
|
||||
import core.crypto.generateKeyPair
|
||||
import java.security.KeyPair
|
||||
import java.security.KeyPairGenerator
|
||||
import java.security.PrivateKey
|
||||
import java.security.PublicKey
|
||||
import java.util.*
|
||||
@ -39,7 +39,7 @@ class E2ETestKeyManagementService : KeyManagementService {
|
||||
override val keys: Map<PublicKey, PrivateKey> get() = mutex.locked { HashMap(keys) }
|
||||
|
||||
override fun freshKey(): KeyPair {
|
||||
val keypair = KeyPairGenerator.getInstance("EC").genKeyPair()
|
||||
val keypair = generateKeyPair()
|
||||
mutex.locked {
|
||||
keys[keypair.public] = keypair.private
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ package core.node
|
||||
|
||||
import com.google.common.net.HostAndPort
|
||||
import core.*
|
||||
import core.crypto.generateKeyPair
|
||||
import core.messaging.*
|
||||
import core.serialization.deserialize
|
||||
import core.serialization.serialize
|
||||
@ -21,7 +22,6 @@ import java.nio.file.Files
|
||||
import java.nio.file.Path
|
||||
import java.nio.file.StandardOpenOption
|
||||
import java.security.KeyPair
|
||||
import java.security.KeyPairGenerator
|
||||
import java.util.*
|
||||
import java.util.concurrent.Executors
|
||||
|
||||
@ -127,7 +127,7 @@ class Node(val dir: Path, val myNetAddr: HostAndPort, val configuration: NodeCon
|
||||
|
||||
val (identity, keypair) = if (!Files.exists(privKeyFile)) {
|
||||
log.info("Identity key not found, generating fresh key!")
|
||||
val keypair: KeyPair = KeyPairGenerator.getInstance("EC").genKeyPair()
|
||||
val keypair: KeyPair = generateKeyPair()
|
||||
keypair.serialize().writeToFile(privKeyFile)
|
||||
val myIdentity = Party(configuration.myLegalName, keypair.public)
|
||||
// We include the Party class with the file here to help catch mixups when admins provide files of the
|
||||
|
@ -13,6 +13,7 @@ import contracts.CommercialPaper
|
||||
import contracts.protocols.TwoPartyTradeProtocol
|
||||
import core.*
|
||||
import core.crypto.SecureHash
|
||||
import core.crypto.generateKeyPair
|
||||
import core.messaging.LegallyIdentifiableNode
|
||||
import core.messaging.SingleMessageRecipient
|
||||
import core.messaging.runOnNextMessage
|
||||
@ -24,7 +25,6 @@ import joptsimple.OptionParser
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Path
|
||||
import java.nio.file.Paths
|
||||
import java.security.KeyPairGenerator
|
||||
import java.security.PublicKey
|
||||
import java.time.Instant
|
||||
import java.util.*
|
||||
@ -176,7 +176,7 @@ fun main(args: Array<String>) {
|
||||
|
||||
fun makeFakeCommercialPaper(ownedBy: PublicKey): StateAndRef<CommercialPaper.State> {
|
||||
// Make a fake company that's issued its own paper.
|
||||
val party = Party("MegaCorp, Inc", KeyPairGenerator.getInstance("EC").genKeyPair().public)
|
||||
val party = Party("MegaCorp, Inc", generateKeyPair().public)
|
||||
// ownedBy here is the random key that gives us control over it.
|
||||
val paper = CommercialPaper.State(party.ref(1,2,3), ownedBy, 1100.DOLLARS, Instant.now() + 10.days)
|
||||
val randomRef = StateRef(SecureHash.randomSHA256(), 0)
|
||||
|
@ -16,8 +16,9 @@ import com.esotericsoftware.kryo.Serializer
|
||||
import com.esotericsoftware.kryo.io.Input
|
||||
import com.esotericsoftware.kryo.io.Output
|
||||
import com.esotericsoftware.kryo.serializers.JavaSerializer
|
||||
import core.crypto.SecureHash
|
||||
import core.SignedWireTransaction
|
||||
import core.crypto.SecureHash
|
||||
import core.crypto.generateKeyPair
|
||||
import core.crypto.sha256
|
||||
import de.javakaffee.kryoserializers.ArraysAsListSerializer
|
||||
import org.objenesis.strategy.StdInstantiatorStrategy
|
||||
@ -25,7 +26,6 @@ import java.io.ByteArrayOutputStream
|
||||
import java.lang.reflect.InvocationTargetException
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Path
|
||||
import java.security.KeyPairGenerator
|
||||
import java.time.Instant
|
||||
import java.util.*
|
||||
import kotlin.reflect.*
|
||||
@ -198,7 +198,7 @@ fun createKryo(k: Kryo = Kryo()): Kryo {
|
||||
|
||||
// Some things where the JRE provides an efficient custom serialisation.
|
||||
val ser = JavaSerializer()
|
||||
val keyPair = KeyPairGenerator.getInstance("EC").genKeyPair()
|
||||
val keyPair = generateKeyPair()
|
||||
register(keyPair.public.javaClass, ser)
|
||||
register(keyPair.private.javaClass, ser)
|
||||
register(Instant::class.java, ser)
|
||||
|
@ -9,6 +9,7 @@
|
||||
package core
|
||||
|
||||
import core.crypto.DigitalSignature
|
||||
import core.crypto.generateKeyPair
|
||||
import core.crypto.signWithECDSA
|
||||
import core.messaging.MessagingService
|
||||
import core.messaging.MockNetworkMap
|
||||
@ -19,7 +20,6 @@ import core.serialization.deserialize
|
||||
import core.testutils.TEST_KEYS_TO_CORP_MAP
|
||||
import core.testutils.TEST_TX_TIME
|
||||
import java.security.KeyPair
|
||||
import java.security.KeyPairGenerator
|
||||
import java.security.PrivateKey
|
||||
import java.security.PublicKey
|
||||
import java.time.Clock
|
||||
@ -53,7 +53,7 @@ object MockIdentityService : IdentityService {
|
||||
|
||||
class MockKeyManagementService(
|
||||
override val keys: Map<PublicKey, PrivateKey>,
|
||||
val nextKeys: MutableList<KeyPair> = arrayListOf(KeyPairGenerator.getInstance("EC").genKeyPair())
|
||||
val nextKeys: MutableList<KeyPair> = arrayListOf(generateKeyPair())
|
||||
) : KeyManagementService {
|
||||
override fun freshKey() = nextKeys.removeAt(nextKeys.lastIndex)
|
||||
}
|
||||
@ -64,7 +64,7 @@ class MockWalletService(val states: List<StateAndRef<OwnableState>>) : WalletSer
|
||||
|
||||
@ThreadSafe
|
||||
class MockStorageService : StorageService {
|
||||
override val myLegalIdentityKey: KeyPair = KeyPairGenerator.getInstance("EC").genKeyPair()
|
||||
override val myLegalIdentityKey: KeyPair = generateKeyPair()
|
||||
override val myLegalIdentity: Party = Party("Unit test party", myLegalIdentityKey.public)
|
||||
|
||||
private val tables = HashMap<String, MutableMap<Any, Any>>()
|
||||
|
@ -15,8 +15,8 @@ import core.*
|
||||
import core.crypto.DummyPublicKey
|
||||
import core.crypto.NullPublicKey
|
||||
import core.crypto.SecureHash
|
||||
import core.crypto.generateKeyPair
|
||||
import core.visualiser.GraphVisualiser
|
||||
import java.security.KeyPairGenerator
|
||||
import java.security.PublicKey
|
||||
import java.time.Instant
|
||||
import java.util.*
|
||||
@ -25,8 +25,8 @@ import kotlin.test.assertFailsWith
|
||||
import kotlin.test.fail
|
||||
|
||||
object TestUtils {
|
||||
val keypair = KeyPairGenerator.getInstance("EC").genKeyPair()
|
||||
val keypair2 = KeyPairGenerator.getInstance("EC").genKeyPair()
|
||||
val keypair = generateKeyPair()
|
||||
val keypair2 = generateKeyPair()
|
||||
}
|
||||
|
||||
// A few dummy values for testing.
|
||||
@ -36,9 +36,9 @@ val MINI_CORP_KEY = TestUtils.keypair2
|
||||
val MINI_CORP_PUBKEY = MINI_CORP_KEY.public
|
||||
val DUMMY_PUBKEY_1 = DummyPublicKey("x1")
|
||||
val DUMMY_PUBKEY_2 = DummyPublicKey("x2")
|
||||
val ALICE_KEY = KeyPairGenerator.getInstance("EC").genKeyPair()
|
||||
val ALICE_KEY = generateKeyPair()
|
||||
val ALICE = ALICE_KEY.public
|
||||
val BOB_KEY = KeyPairGenerator.getInstance("EC").genKeyPair()
|
||||
val BOB_KEY = generateKeyPair()
|
||||
val BOB = BOB_KEY.public
|
||||
val MEGA_CORP = Party("MegaCorp", MEGA_CORP_PUBKEY)
|
||||
val MINI_CORP = Party("MiniCorp", MINI_CORP_PUBKEY)
|
||||
|
Loading…
x
Reference in New Issue
Block a user