Class DSAParametersGenerator


  • public class DSAParametersGenerator
    extends java.lang.Object
    generate suitable parameters for DSA, in line with FIPS 186-2.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private int certainty  
      private static java.math.BigInteger ONE  
      private java.security.SecureRandom random  
      private int size  
      private static java.math.BigInteger TWO  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void add​(byte[] a, byte[] b, int value)
      add value to b, returning the result in a.
      DSAParameters generateParameters()
      which generates the p and g values from the given parameters, returning the DSAParameters object.
      void init​(int size, int certainty, java.security.SecureRandom random)
      initialise the key generator.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • size

        private int size
      • certainty

        private int certainty
      • random

        private java.security.SecureRandom random
      • ONE

        private static java.math.BigInteger ONE
      • TWO

        private static java.math.BigInteger TWO
    • Constructor Detail

      • DSAParametersGenerator

        public DSAParametersGenerator()
    • Method Detail

      • init

        public void init​(int size,
                         int certainty,
                         java.security.SecureRandom random)
        initialise the key generator.
        Parameters:
        size - size of the key (range 2^512 -> 2^1024 - 64 bit increments)
        certainty - measure of robustness of prime (for FIPS 186-2 compliance this should be at least 80).
        random - random byte source.
      • add

        private void add​(byte[] a,
                         byte[] b,
                         int value)
        add value to b, returning the result in a. The a value is treated as a BigInteger of length (a.length * 8) bits. The result is modulo 2^a.length in case of overflow.
      • generateParameters

        public DSAParameters generateParameters()
        which generates the p and g values from the given parameters, returning the DSAParameters object.

        Note: can take a while...