mirror of
https://github.com/corda/corda.git
synced 2025-04-07 11:27:01 +00:00
contracts, core, node: Use entropyToKeyPair in Generators instead of manually creating keys
This commit is contained in:
parent
f11a587382
commit
491b1abd4a
@ -7,6 +7,7 @@ import com.pholser.junit.quickcheck.random.SourceOfRandomness
|
||||
import com.r3corda.contracts.asset.Cash
|
||||
import com.r3corda.core.contracts.*
|
||||
import com.r3corda.core.crypto.DigitalSignature
|
||||
import com.r3corda.core.crypto.NullSignature
|
||||
import com.r3corda.core.crypto.SecureHash
|
||||
import com.r3corda.core.testing.*
|
||||
import java.util.*
|
||||
@ -81,7 +82,7 @@ class SignedTransactionGenerator: Generator<SignedTransaction>(SignedTransaction
|
||||
val wireTransaction = WiredTransactionGenerator().generate(random, status)
|
||||
return SignedTransaction(
|
||||
txBits = wireTransaction.serialized,
|
||||
sigs = wireTransaction.signers.map { DigitalSignature.WithKey(it, random.nextBytes(16)) }
|
||||
sigs = listOf(NullSignature)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -6,15 +6,10 @@ import com.pholser.junit.quickcheck.generator.java.lang.StringGenerator
|
||||
import com.pholser.junit.quickcheck.generator.java.util.ArrayListGenerator
|
||||
import com.pholser.junit.quickcheck.random.SourceOfRandomness
|
||||
import com.r3corda.core.contracts.*
|
||||
import com.r3corda.core.crypto.DigitalSignature
|
||||
import com.r3corda.core.crypto.Party
|
||||
import com.r3corda.core.crypto.SecureHash
|
||||
import com.r3corda.core.crypto.ed25519Curve
|
||||
import com.r3corda.core.crypto.*
|
||||
import com.r3corda.core.serialization.OpaqueBytes
|
||||
import net.i2p.crypto.eddsa.EdDSAPrivateKey
|
||||
import net.i2p.crypto.eddsa.EdDSAPublicKey
|
||||
import net.i2p.crypto.eddsa.spec.EdDSAPrivateKeySpec
|
||||
import net.i2p.crypto.eddsa.spec.EdDSAPublicKeySpec
|
||||
import java.security.PrivateKey
|
||||
import java.security.PublicKey
|
||||
import java.time.Duration
|
||||
import java.time.Instant
|
||||
import java.util.*
|
||||
@ -32,18 +27,15 @@ fun <A> Generator<A>.generateList(random: SourceOfRandomness, status: Generation
|
||||
return arrayGenerator.generate(random, status) as List<A>
|
||||
}
|
||||
|
||||
class PrivateKeyGenerator: Generator<EdDSAPrivateKey>(EdDSAPrivateKey::class.java) {
|
||||
override fun generate(random: SourceOfRandomness, status: GenerationStatus): EdDSAPrivateKey {
|
||||
val seed = random.nextBytes(32)
|
||||
val privateKeySpec = EdDSAPrivateKeySpec(seed, ed25519Curve)
|
||||
return EdDSAPrivateKey(privateKeySpec)
|
||||
class PrivateKeyGenerator: Generator<PrivateKey>(PrivateKey::class.java) {
|
||||
override fun generate(random: SourceOfRandomness, status: GenerationStatus): PrivateKey {
|
||||
return entropyToKeyPair(random.nextBigInteger(32)).private
|
||||
}
|
||||
}
|
||||
|
||||
class PublicKeyGenerator: Generator<EdDSAPublicKey>(EdDSAPublicKey::class.java) {
|
||||
override fun generate(random: SourceOfRandomness, status: GenerationStatus): EdDSAPublicKey {
|
||||
val privateKey = PrivateKeyGenerator().generate(random, status)
|
||||
return EdDSAPublicKey(EdDSAPublicKeySpec(privateKey.a, ed25519Curve))
|
||||
class PublicKeyGenerator: Generator<PublicKey>(PublicKey::class.java) {
|
||||
override fun generate(random: SourceOfRandomness, status: GenerationStatus): PublicKey {
|
||||
return entropyToKeyPair(random.nextBigInteger(32)).public
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ import com.r3corda.core.testing.PublicKeyGenerator
|
||||
import com.r3corda.node.utilities.JsonSupport
|
||||
import net.i2p.crypto.eddsa.EdDSAPublicKey
|
||||
import org.junit.runner.RunWith
|
||||
import java.security.PublicKey
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
@RunWith(com.pholser.junit.quickcheck.runner.JUnitQuickcheck::class)
|
||||
@ -15,7 +16,7 @@ class JsonSupportTest {
|
||||
}
|
||||
|
||||
@com.pholser.junit.quickcheck.Property
|
||||
fun publicKeySerializingWorks(@com.pholser.junit.quickcheck.From(PublicKeyGenerator::class) publicKey: EdDSAPublicKey) {
|
||||
fun publicKeySerializingWorks(@com.pholser.junit.quickcheck.From(PublicKeyGenerator::class) publicKey: PublicKey) {
|
||||
val serialized = mapper.writeValueAsString(publicKey)
|
||||
val parsedKey = mapper.readValue(serialized, EdDSAPublicKey::class.java)
|
||||
assertEquals(publicKey, parsedKey)
|
||||
|
Loading…
x
Reference in New Issue
Block a user