org.bouncycastle.crypto.params.DSAParameterGenerationParameters Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-ext-jdk15on Show documentation
Show all versions of bcprov-ext-jdk15on Show documentation
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.5 to JDK 1.8. Note: this package includes the NTRU encryption algorithms.
package org.bouncycastle.crypto.params;
import java.security.SecureRandom;
public class DSAParameterGenerationParameters
{
public static final int DIGITAL_SIGNATURE_USAGE = 1;
public static final int KEY_ESTABLISHMENT_USAGE = 2;
private final int l;
private final int n;
private final int usageIndex;
private final int certainty;
private final SecureRandom random;
/**
* Construct without a usage index, this will do a random construction of G.
*
* @param L desired length of prime P in bits (the effective key size).
* @param N desired length of prime Q in bits.
* @param certainty certainty level for prime number generation.
* @param random the source of randomness to use.
*/
public DSAParameterGenerationParameters(
int L,
int N,
int certainty,
SecureRandom random)
{
this(L, N, certainty, random, -1);
}
/**
* Construct for a specific usage index - this has the effect of using verifiable canonical generation of G.
*
* @param L desired length of prime P in bits (the effective key size).
* @param N desired length of prime Q in bits.
* @param certainty certainty level for prime number generation.
* @param random the source of randomness to use.
* @param usageIndex a valid usage index.
*/
public DSAParameterGenerationParameters(
int L,
int N,
int certainty,
SecureRandom random,
int usageIndex)
{
this.l = L;
this.n = N;
this.certainty = certainty;
this.usageIndex = usageIndex;
this.random = random;
}
public int getL()
{
return l;
}
public int getN()
{
return n;
}
public int getCertainty()
{
return certainty;
}
public SecureRandom getRandom()
{
return random;
}
public int getUsageIndex()
{
return usageIndex;
}
}