public class PQGParams
extends java.security.spec.DSAParameterSpec
This class has two main purposes:
 generating PQG parameters and verifying PQG parameters.  To generate
 PQG parameters, call one of the static generate methods.
 They will return a new set of PQG paramters.  To verify existing PQG
 parameters, create a new PQGParams object with the
 constructor and call paramsAreValid on the object.
 
It is necessary to call CryptoManager.initialize before
 using this class.
| Constructor and Description | 
|---|
PQGParams(java.math.BigInteger P,
         java.math.BigInteger Q,
         java.math.BigInteger G,
         java.math.BigInteger seed,
         int counter,
         java.math.BigInteger H)
Creates a PQGParams object from a set of pre-computed DSA
 parameters. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
static byte[] | 
BigIntegerToUnsignedByteArray(java.math.BigInteger big)
Produces an unsigned byte-array representation of a BigInteger. 
 | 
static PQGParams | 
generate(int keySize)
Generates P, Q, and G parameters for DSA key generation. 
 | 
static PQGParams | 
generate(int keySize,
        int seedBytes)
Generates P, Q, and G parameters for DSA key generation. 
 | 
int | 
getCounter()  | 
java.math.BigInteger | 
getH()  | 
java.math.BigInteger | 
getSeed()  | 
boolean | 
paramsAreValid()
Verifies the PQG parameters using the seed, counter, and H values. 
 | 
public PQGParams(java.math.BigInteger P,
         java.math.BigInteger Q,
         java.math.BigInteger G,
         java.math.BigInteger seed,
         int counter,
         java.math.BigInteger H)
P - The DSA prime parameter.Q - The DSA sub-prime parameter.G - The DSA base parameter.seed - The Seed used to calculate P, Q, and G.counter - The Counter (C) used to calculate P, Q, and G.H - The H value used to generate P, Q, and G.public static PQGParams generate(int keySize) throws java.security.InvalidParameterException, PQGParamGenException
CryptoManager.initialize functions before calling
  this method.keySize - The size of P in bits.  Keys generated by these P,
      Q, and G values will have this length.  Valid key sizes
      are multiples of 64 in the closed interval [512,1024].
      This also dictates the length of H and Seed.java.security.InvalidParameterException - If the keySize
      is outside the bounds described by the DSA key pair
      generation algorithm.PQGParamGenException - If an error
      occurs during the generation process.CryptoManager.initialize(java.lang.String)public static PQGParams generate(int keySize, int seedBytes) throws java.security.InvalidParameterException, PQGParamGenException
CryptoManager.initialize functions before calling
  this method.keySize - The size of P in bits.  Keys generated by these P,
      Q, and G values will have this length.  Valid key sizes
      are multiples of 64 in the closed interval [512,1024].
      This also dictates the length of H.seedBytes - The number of bytes in the Seed value used to
      generate P, Q, and G.  seedBytes must be
      from the closed interval [20,255].java.security.InvalidParameterException - If the keySize
      or number of seed bytes is outside the bounds described by the
      DSA key pair generation algorithm.PQGParamGenException - If an error
      occurs during the generation process.CryptoManager.initialize(java.lang.String)public static byte[] BigIntegerToUnsignedByteArray(java.math.BigInteger big)
BigInteger adds an extra sign bit to the beginning of its byte array representation. In some cases this will cause the size of the byte array to increase, which may be unacceptable for some applications. This function returns a minimal byte array representing the BigInteger without extra sign bits.
public boolean paramsAreValid()
public java.math.BigInteger getSeed()
public int getCounter()
public java.math.BigInteger getH()