00001 using System;
00002 using Tamir.SharpSsh.jsch;
00003
00004
00005
00006
00007
00008
00009
00010 namespace sharpSshTest.jsch_samples
00011 {
00019 public class KeyGen
00020 {
00021 public static void RunExample(params string[] arg)
00022 {
00023 if(arg.Length<3)
00024 {
00025 Console.Error.WriteLine(
00026 "usage: java KeyGen rsa output_keyfile comment\n"+
00027 " java KeyGen dsa output_keyfile comment");
00028 return;
00029 }
00030
00031 try
00032 {
00033
00034 String _type=arg[0];
00035 int type=0;
00036 if(_type.Equals("rsa")){type=KeyPair.RSA;}
00037 else if(_type.Equals("dsa")){type=KeyPair.DSA;}
00038 else
00039 {
00040 Console.Error.WriteLine(
00041 "usage: java KeyGen rsa output_keyfile comment\n"+
00042 " java KeyGen dsa output_keyfile comment");
00043 return;
00044 }
00045
00046 String filename=arg[1];
00047
00048 String comment=arg[2];
00049
00050
00051 JSch jsch=new JSch();
00052
00053
00054 String passphrase=InputForm.GetUserInput("Enter passphrase (empty for no passphrase)", true);
00055
00056
00057
00058 KeyPair kpair=KeyPair.genKeyPair(jsch, type);
00059
00060 kpair.setPassphrase(passphrase);
00061
00062 kpair.writePrivateKey(filename);
00063
00064 kpair.writePublicKey(filename+".pub", comment);
00065
00066 Console.WriteLine("Finger print: "+kpair.getFingerPrint());
00067
00068 kpair.dispose();
00069 }
00070 catch(Exception e)
00071 {
00072 Console.WriteLine(e);
00073 }
00074 return;
00075 }
00076 }
00077 }