/* * KeyHandler.java (för 10.1) * Karl-Adam Karlsson * 06-10-05 * * */ import javax.crypto.*; import java.security.*; import java.io.*; public class KeyHandler{ public KeyHandler(String privateName, String publicName){ KeyPair aPair = genKeys(1024); saveKey(privateName, aPair.getPrivate()); saveKey(publicName, aPair.getPublic()); }//end of constructor /* * genKeys generates and returns a keypair of desired Size. * * * @param int keysize the desired size of the keypair * * @returns KeyPair of size keysize * */ private KeyPair genKeys(int keysize){ KeyPairGenerator aGenerator = null; String alg1 = "DSA"; try{ aGenerator = KeyPairGenerator.getInstance(alg1); aGenerator.initialize(keysize); }catch(NoSuchAlgorithmException alEx){ System.err.print(alEx); System.exit(1); } return aGenerator.generateKeyPair(); }//end of genKeys /* * SaveKey saves a Key to file. * Both key to be saved and filename are parameters. * * @param String fileName The file to save to. * @param Key aKey The key to be saved. * */ private void saveKey(String fileName, Key aKey){ File outFile = new File(fileName); FileOutputStream outStream; ObjectOutputStream oStream; try{ outStream = new FileOutputStream(outFile); oStream = new ObjectOutputStream(outStream); oStream.writeObject(aKey); oStream.close(); outStream.close(); } catch(IOException e) { System.err.println("IO Exception"); e.printStackTrace(); System.exit(1); } }//endof saveKey /* * main * */ public static void main (String[] args) { if(args==null || args.length < 2 ||args.length>2){ System.out.print("Usage:\njava KeyHandler \n"); System.out.println("Where is desired name of private keyfile."); System.out.println("Where is desired name of public keyfile."); } else if(args.length==2&&args[0]!=null&&args[1]!=null){ new KeyHandler(args[0],args[1]); } else if(args[0]==null||args[1]==null){ System.out.print("Usage:\njava KeyHandler \n"); System.out.println("Where is desired name of private keyfile."); System.out.println("Where is desired name of public keyfile."); } }//end of main }//end of Class