View Javadoc
1   package civitas.crypto.parameters;
2   
3   import org.springframework.beans.factory.annotation.Autowired;
4   import org.springframework.stereotype.Controller;
5   
6   import civitas.crypto.Constants;
7   import civitas.crypto.CryptoBase;
8   import civitas.util.CivitasBigInteger;
9   
10  @Controller
11  public class GenerateSafePrime implements Constants {
12  
13  	@Autowired
14  	CryptoBase cryptoBase;
15  
16  	public PrimePair apply(final int length) {
17  		CivitasBigInteger possibleP;
18  		CivitasBigInteger possibleQ;
19  		do {
20  			possibleQ = cryptoBase.obtainProbablePrime(length);
21  			possibleP = possibleQ.multiply(TWO).add(ONE);
22  		} while (!possibleP.isProbablePrime(CERTAINTY));
23  		return new PrimePair(possibleP, possibleQ);
24  	}
25  }