1 package civitas.crypto.keypair.tests;
2
3 import static org.junit.jupiter.api.Assertions.assertEquals;
4
5 import org.junit.jupiter.api.DisplayName;
6 import org.junit.jupiter.api.Test;
7 import org.mockito.InjectMocks;
8
9 import civitas.common.CommonUtil;
10 import civitas.common.tests.RandomAwareTestBase;
11 import civitas.crypto.keypair.ElGamalKeyPair;
12 import civitas.crypto.keypair.GenerateElGamalKeyPair;
13 import civitas.crypto.parameters.tests.ElGamalParametersTestData;
14
15 class GenerateElGamalKeyPairTest extends RandomAwareTestBase implements ElGamalParametersTestData {
16
17 @InjectMocks
18 GenerateElGamalKeyPair generateElGamalKeyPair;
19
20 @Test
21 @DisplayName("generateElGamalKeyPair works as expected"
22 + "x := random, h:=g^x (mod p). x is the private, h is the public key")
23 void generateElGamalKeyPairtest() {
24 ElGamalKeyPair keyPair = generateElGamalKeyPair.apply(EL_GAMAL_PARAMETERS);
25 assertEquals(
26 RANDOMS_0_BASE64, CommonUtil.fromBigInt(keyPair.privateKey().x()));
27 assertEquals(RANDOMS_0_PUBLISHED, keyPair.publicKey().y);
28 }
29 }