1 package civitas.util; 2 3 import static org.junit.jupiter.api.Assertions.assertEquals; 4 import static org.junit.jupiter.api.Assertions.assertTrue; 5 6 import org.junit.jupiter.api.DisplayName; 7 import org.junit.jupiter.api.Tag; 8 import org.junit.jupiter.api.Test; 9 import org.junit.jupiter.api.extension.ExtendWith; 10 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.test.context.ContextConfiguration; 12 import org.springframework.test.context.junit.jupiter.SpringExtension; 13 14 import civitas.AppTestConfig; 15 import civitas.common.RandomAwareTestBase; 16 import civitas.crypto.CryptoBase; 17 import civitas.crypto.parameters.ElGamalParametersTestData; 18 19 @Tag("functional") 20 @ExtendWith(SpringExtension.class) 21 @ContextConfiguration(classes = AppTestConfig.class) 22 class ObtainProbablePrimeFunctionalTest extends RandomAwareTestBase implements ElGamalParametersTestData { 23 24 @Autowired 25 CryptoBase cryptoBase; 26 27 @Test 28 @DisplayName("obtain a probable prime with the given bit length, certainty and random generator") 29 void test() { 30 CivitasBigInteger p = cryptoBase.obtainProbablePrime(EL_GAMAL_KEY_LENGTH); 31 assertTrue(p.isProbablePrime(CERTAINTY)); 32 assertEquals(EL_GAMAL_KEY_LENGTH, p.bitLength()); 33 } 34 }