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