Home | History | Annotate | Download | only in params
      1 package org.bouncycastle.crypto.params;
      2 
      3 import java.security.SecureRandom;
      4 
      5 public class DSAParameterGenerationParameters
      6 {
      7     public static final int DIGITAL_SIGNATURE_USAGE = 1;
      8     public static final int KEY_ESTABLISHMENT_USAGE = 2;
      9 
     10     private final int l;
     11     private final int n;
     12     private final int usageIndex;
     13     private final int certainty;
     14     private final SecureRandom random;
     15 
     16     /**
     17      * Construct without a usage index, this will do a random construction of G.
     18      *
     19      * @param L desired length of prime P in bits (the effective key size).
     20      * @param N desired length of prime Q in bits.
     21      * @param certainty certainty level for prime number generation.
     22      * @param random the source of randomness to use.
     23      */
     24     public DSAParameterGenerationParameters(
     25         int L,
     26         int N,
     27         int certainty,
     28         SecureRandom random)
     29     {
     30         this(L, N, certainty, random, -1);
     31     }
     32 
     33     /**
     34      * Construct for a specific usage index - this has the effect of using verifiable canonical generation of G.
     35      *
     36      * @param L desired length of prime P in bits (the effective key size).
     37      * @param N desired length of prime Q in bits.
     38      * @param certainty certainty level for prime number generation.
     39      * @param random the source of randomness to use.
     40      * @param usageIndex a valid usage index.
     41      */
     42     public DSAParameterGenerationParameters(
     43         int L,
     44         int N,
     45         int certainty,
     46         SecureRandom random,
     47         int usageIndex)
     48     {
     49         this.l = L;
     50         this.n = N;
     51         this.certainty = certainty;
     52         this.usageIndex = usageIndex;
     53         this.random = random;
     54     }
     55 
     56     public int getL()
     57     {
     58         return l;
     59     }
     60 
     61     public int getN()
     62     {
     63         return n;
     64     }
     65 
     66     public int getCertainty()
     67     {
     68         return certainty;
     69     }
     70 
     71     public SecureRandom getRandom()
     72     {
     73         return random;
     74     }
     75 
     76     public int getUsageIndex()
     77     {
     78         return usageIndex;
     79     }
     80 }
     81