Skip to content

Commit f6134b2

Browse files
committed
#BAEL-6958: add test source
1 parent 9855fd9 commit f6134b2

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.baeldung.kem;
2+
3+
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
4+
import static org.junit.jupiter.api.Assertions.assertNotNull;
5+
import static org.junit.jupiter.api.Assertions.assertThrows;
6+
7+
import java.security.KeyPair;
8+
import java.security.KeyPairGenerator;
9+
10+
import javax.crypto.SecretKey;
11+
12+
import org.junit.jupiter.api.BeforeAll;
13+
import org.junit.jupiter.api.Test;
14+
15+
public class KemUtilsIntegrationTest {
16+
private static KeyPair keyPair;
17+
public static final String KEM_ALGORITHM = "DHKEM";
18+
19+
20+
@BeforeAll
21+
static void setup() throws Exception {
22+
KeyPairGenerator kpg = KeyPairGenerator.getInstance("X25519");
23+
keyPair = kpg.generateKeyPair();
24+
}
25+
26+
@Test
27+
void givenKem_whenSenderEncapsulatesAndReceiverDecapsulates_thenSecretsMatch() throws Exception {
28+
KemUtils.KemResult senderResult = KemUtils.encapsulate(KEM_ALGORITHM, keyPair.getPublic());
29+
assertNotNull(senderResult.sharedSecret());
30+
assertNotNull(senderResult.encapsulation());
31+
32+
KemUtils.KemResult receiverResult = KemUtils.decapsulate(KEM_ALGORITHM, keyPair.getPrivate(), senderResult.encapsulation());
33+
34+
SecretKey senderSecret = senderResult.sharedSecret();
35+
SecretKey receiverSecret = receiverResult.sharedSecret();
36+
37+
assertArrayEquals(senderSecret.getEncoded(), receiverSecret.getEncoded(),
38+
"Shared secrets from sender and receiver must match");
39+
}
40+
41+
@Test
42+
void givenDifferentReceiverKey_whenDecapsulate_thenFails() throws Exception {
43+
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
44+
KeyPair wrongKeyPair = kpg.generateKeyPair();
45+
46+
KemUtils.KemResult senderResult = KemUtils.encapsulate(KEM_ALGORITHM, keyPair.getPublic());
47+
48+
assertThrows(Exception.class, () ->
49+
KemUtils.decapsulate(KEM_ALGORITHM, wrongKeyPair.getPrivate(), senderResult.encapsulation()));
50+
}
51+
52+
}

0 commit comments

Comments
 (0)