1 /*
2  * @(#) $Id: GenerateKeyPair.java,v 1.2 2003/07/08 08:13:52 pankaj Exp $
3  *
4  * Copyright (c) 2002-03 by Pankaj Kumar (http://www.pankaj-k.net). 
5  * All rights reserved.
6  *
7  * The license governing the use of this file can be found in the 
8  * root directory of the containing software.
9  */
10import java.security.KeyPairGenerator;
11import java.security.KeyPair;
12import java.security.PublicKey;
13import java.security.PrivateKey;
14import java.security.Key;
15
16public class GenerateKeyPair {
17    private static String formatKey(Key key){
18        StringBuffer sb = new StringBuffer();
19        String algo = key.getAlgorithm();
20        String fmt = key.getFormat();
21        byte[] encoded = key.getEncoded();
22        sb.append("Key[algorithm=" + algo + ", format=" + fmt + ", bytes=" + encoded.length + "]\n");
23        if (fmt.equalsIgnoreCase("RAW")){
24            sb.append("Key Material (in hex):: ");
25            sb.append(Util.byteArray2Hex(key.getEncoded()));
26        }
27        return sb.toString();
28    }
29    public static void main(String[] unused) throws Exception {
30        KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA");
31        kpg.initialize(512); // 512 is the keysize.
32        KeyPair kp = kpg.generateKeyPair();
33        PublicKey pubk = kp.getPublic();
34        PrivateKey prvk = kp.getPrivate();
35        System.out.println("Generated Public Key:: " + formatKey(pubk));
36        System.out.println("Generated Private Key:: " + formatKey(prvk));
37    }
38}