Skip to content

Commit 2dc6f6f

Browse files
committed
unit test
1 parent ff8fe78 commit 2dc6f6f

File tree

1 file changed

+36
-0
lines changed
  • runtime/runtime-core/jvm/test/aws/smithy/kotlin/runtime/hashing

1 file changed

+36
-0
lines changed

runtime/runtime-core/jvm/test/aws/smithy/kotlin/runtime/hashing/EcdsaJVMTest.kt

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ package aws.smithy.kotlin.runtime.hashing
66

77
import org.junit.jupiter.api.Assertions.assertFalse
88
import org.junit.jupiter.api.Assertions.assertTrue
9+
import org.junit.jupiter.api.condition.EnabledForJreRange
10+
import org.junit.jupiter.api.condition.JRE
911
import java.security.*
1012
import java.security.interfaces.*
1113
import java.security.spec.*
@@ -30,6 +32,10 @@ class EcdsaJVMTest {
3032

3133
assertTrue(signature.isNotEmpty())
3234
assertTrue(signature.size >= 64) // ECDSA signatures are typically 70-72 bytes in DER format
35+
36+
val rawSignature = ecdsaSecp256r1Rs(privateKey, message)
37+
assertTrue(signature.isNotEmpty())
38+
assertTrue(rawSignature.size == 64)
3339
}
3440

3541
@Test
@@ -44,6 +50,13 @@ class EcdsaJVMTest {
4450
assertTrue(signature1.isNotEmpty())
4551
assertTrue(signature2.isNotEmpty())
4652
assertFalse(signature1.contentEquals(signature2))
53+
54+
val rawSignature1 = ecdsaSecp256r1Rs(privateKey, message1)
55+
val rawSignature2 = ecdsaSecp256r1Rs(privateKey, message2)
56+
57+
assertTrue(rawSignature1.isNotEmpty())
58+
assertTrue(rawSignature2.isNotEmpty())
59+
assertFalse(rawSignature1.contentEquals(rawSignature2))
4760
}
4861

4962
@Test
@@ -53,6 +66,9 @@ class EcdsaJVMTest {
5366

5467
val signature = ecdsaSecp256r1(privateKey, message)
5568
assertTrue(signature.isNotEmpty())
69+
70+
val rawSignature = ecdsaSecp256r1Rs(privateKey, message)
71+
assertTrue(rawSignature.isNotEmpty())
5672
}
5773

5874
@Test
@@ -62,6 +78,9 @@ class EcdsaJVMTest {
6278

6379
val signature = ecdsaSecp256r1(privateKey, largeMessage)
6480
assertTrue(signature.isNotEmpty())
81+
82+
val rawSignature = ecdsaSecp256r1Rs(privateKey, largeMessage)
83+
assertTrue(rawSignature.isNotEmpty())
6584
}
6685

6786
@Test
@@ -78,6 +97,23 @@ class EcdsaJVMTest {
7897
val verifier = Signature.getInstance("SHA256withECDSA")
7998
verifier.initVerify(publicKey)
8099
verifier.update(message)
100+
}
101+
102+
@Test
103+
@EnabledForJreRange(min = JRE.JAVA_11)
104+
fun testVerifyRawSignature() {
105+
val keyGen = KeyPairGenerator.getInstance("EC")
106+
keyGen.initialize(ECGenParameterSpec("secp256r1"))
107+
val keyPair = keyGen.generateKeyPair()
108+
val privateKey = (keyPair.private as ECPrivateKey).s.toByteArray()
109+
val publicKey = keyPair.public
110+
111+
val message = "Hello, World!".toByteArray()
112+
val signature = ecdsaSecp256r1Rs(privateKey, message)
113+
114+
val verifier = Signature.getInstance("SHA256withECDSAinP1363Format")
115+
verifier.initVerify(publicKey)
116+
verifier.update(message)
81117

82118
assertTrue(verifier.verify(signature))
83119
}

0 commit comments

Comments
 (0)