/* -*-mode:java; c-basic-offset:2; -*- */
import com.jcraft.jsch.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
class KeyGen{
public static void main(String[] arg){
if(arg.length<3){
System.err.println(
"usage: java KeyGen rsa output_keyfile comment\n"+
" java KeyGen dsa output_keyfile comment");
System.exit(-1);
}
String _type=arg[0];
int type=0;
if(_type.equals("rsa")){type=KeyPair.RSA;}
else if(_type.equals("dsa")){type=KeyPair.DSA;}
else {
System.err.println(
"usage: java KeyGen rsa output_keyfile comment\n"+
" java KeyGen dsa output_keyfile comment");
System.exit(-1);
}
String filename=arg[1];
String comment=arg[2];
JSch jsch=new JSch();
String passphrase="";
JTextField passphraseField=(JTextField)new JPasswordField(20);
Object[] ob={passphraseField};
int result=
JOptionPane.showConfirmDialog(null, ob, "Enter passphrase (empty for no passphrase)",
JOptionPane.OK_CANCEL_OPTION);
if(result==JOptionPane.OK_OPTION){
passphrase=passphraseField.getText();
}
try{
KeyPair kpair=KeyPair.genKeyPair(jsch, type);
kpair.setPassphrase(passphrase);
kpair.writePrivateKey(filename);
kpair.writePublicKey(filename+".pub", comment);
System.out.println("Finger print: "+kpair.getFingerPrint());
kpair.dispose();
}
catch(Exception e){
System.out.println(e);
}
System.exit(0);
}
}