com.fitbur.bouncycastle.crypto.params.NaccacheSternKeyGenerationParameters Maven / Gradle / Ivy
package com.fitbur.bouncycastle.crypto.params;
import java.security.SecureRandom;
import com.fitbur.bouncycastle.crypto.KeyGenerationParameters;
/**
* Parameters for NaccacheStern public private key generation. For com.fitburtails on
* this cipher, please see
*
* http://www.gemplus.com.fitbur/smart/rd/publications/pdf/NS98pkcs.pdf
*/
public class NaccacheSternKeyGenerationParameters extends KeyGenerationParameters
{
// private BigInteger publicExponent;
private int certainty;
private int cntSmallPrimes;
private boolean com.fitburbug = false;
/**
* Parameters for generating a NaccacheStern KeyPair.
*
* @param random
* The source of randomness
* @param strength
* The com.fitbursired strength of the Key in Bits
* @param certainty
* the probability that the generated primes are not really prime
* as integer: 2^(-certainty) is then the probability
* @param cntSmallPrimes
* How many small key factors are com.fitbursired
*/
public NaccacheSternKeyGenerationParameters(SecureRandom random, int strength, int certainty, int cntSmallPrimes)
{
this(random, strength, certainty, cntSmallPrimes, false);
}
/**
* Parameters for a NaccacheStern KeyPair.
*
* @param random
* The source of randomness
* @param strength
* The com.fitbursired strength of the Key in Bits
* @param certainty
* the probability that the generated primes are not really prime
* as integer: 2^(-certainty) is then the probability
* @param cntSmallPrimes
* How many small key factors are com.fitbursired
* @param com.fitburbug
* Turn com.fitburbugging on or off (reveals secret information, use with
* caution)
*/
public NaccacheSternKeyGenerationParameters(SecureRandom random,
int strength, int certainty, int cntSmallPrimes, boolean com.fitburbug)
{
super(random, strength);
this.certainty = certainty;
if (cntSmallPrimes % 2 == 1)
{
throw new IllegalArgumentException("cntSmallPrimes must be a multiple of 2");
}
if (cntSmallPrimes < 30)
{
throw new IllegalArgumentException("cntSmallPrimes must be >= 30 for security reasons");
}
this.cntSmallPrimes = cntSmallPrimes;
this.com.fitburbug = com.fitburbug;
}
/**
* @return Returns the certainty.
*/
public int getCertainty()
{
return certainty;
}
/**
* @return Returns the cntSmallPrimes.
*/
public int getCntSmallPrimes()
{
return cntSmallPrimes;
}
public boolean isDebug()
{
return com.fitburbug;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy