View Javadoc
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  }