1 package civitas.crypto.keypairshare.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.tests.RandomAwareTestBase;
10 import civitas.crypto.keypairshare.ElGamalKeyPairShare;
11 import civitas.crypto.keypairshare.GenerateKeyPairShare;
12 import civitas.crypto.parameters.tests.ElGamalParametersTestData;
13
14 class GenerateKeyPairShareTest extends RandomAwareTestBase implements ElGamalParametersTestData {
15
16 @InjectMocks
17 GenerateKeyPairShare generateKeyPairShare;
18
19 @Test
20 @DisplayName("generateKeyPairShare works as expected"
21 + "x := random, h:=g^x (mod p). x is the private, h is the public key")
22 void generateKeyPairShareTest() {
23
24 ElGamalKeyPairShare keyPair = generateKeyPairShare.apply(EL_GAMAL_PARAMETERS);
25
26 assertEquals(RANDOMS_0, keyPair.privKey().x());
27 assertEquals(RANDOMS_0_PUBLISHED, keyPair.pubKey().y);
28 }
29 }