Getting the Digital Signature Algorithm (DSA) Parameters of a Key Pair

The DSA requires three parameters to create a key pair --- the prime (P), the subprime (Q), and the base (G). These three values are used to create a private key (called X) and a public key (called Y).

This example creates a DSA key pair with provider-supplied default values for P, Q, and G, and then retrieves the default values.

try { // Generate a 1024-bit Digital Signature Algorithm (DSA) key pair KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA"); keyGen.initialize(1024); KeyPair keypair = keyGen.genKeyPair(); DSAPrivateKey privateKey = (DSAPrivateKey)keypair.getPrivate(); DSAPublicKey publicKey = (DSAPublicKey)keypair.getPublic(); // Get p, q, g; they are the same for both private and public keys DSAParams dsaParams = privateKey.getParams(); BigInteger p = dsaParams.getP(); BigInteger q = dsaParams.getQ(); BigInteger g = dsaParams.getG(); // Get the private key's X BigInteger x = privateKey.getX(); // Get the public key's Y BigInteger y = publicKey.getY(); } catch (NoSuchAlgorithmException e) { }

Post a comment

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image. Ignore spaces and be careful about upper and lower case.