1 package civitas.crypto.keypair;
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.RandomAwareTestBase;
11 import civitas.crypto.parameters.ElGamalParametersTestData;
12
13 class GenerateElGamalKeyPairTest extends RandomAwareTestBase implements ElGamalParametersTestData {
14
15 @InjectMocks
16 GenerateElGamalKeyPair generateElGamalKeyPair;
17
18 @Test
19 @DisplayName("generateElGamalKeyPair works as expected"
20 + "x := random, h:=g^x (mod p). x is the private, h is the public key")
21 void generateElGamalKeyPairtest() {
22 ElGamalKeyPair keyPair = generateElGamalKeyPair.apply(EL_GAMAL_PARAMETERS);
23 assertEquals(
24 RANDOMS_0_BASE64, CommonUtil.fromBigInt(keyPair.privateKey().x()));
25 assertEquals(RANDOMS_0_PUBLISHED, keyPair.publicKey().y);
26 }
27 }