The following example demonstrates how to generate a DSS keypair.
IKeyPairGenerator kpg = KeyPairGeneratorFactory.getInstance(Registry.DSS_KPG);
HashMap map = new HashMap();
map.put(DSSKeyPairGenerator.MODULUS_LENGTH, new Integer(512));
map.put(DSSKeyPairGenerator.USE_DEFAULTS, new Boolean(false));
kpg.setup(map);
KeyPair kp = kpg.generate();
BigInteger p1 = ((DSAPublicKey) kp.getPublic()).getParams().getP();
BigInteger p2 = ((DSAPrivateKey) kp.getPrivate()).getParams().getP();
BigInteger q1 = ((DSAPublicKey) kp.getPublic()).getParams().getQ();
BigInteger q2 = ((DSAPrivateKey) kp.getPrivate()).getParams().getQ();
BigInteger g1 = ((DSAPublicKey) kp.getPublic()).getParams().getG();
BigInteger g2 = ((DSAPrivateKey) kp.getPrivate()).getParams().getG();