/// <param name="console"></param>
public static void genRSAKeysFile(CryptobyConsole console)
{
Scanner scanner = new Scanner(java.lang.System.@in);
string privateKeyPath;
string publicKeyPath;
// Initial Variables
int keySize;
int choice;
string publicKey;
string privateKey;
// Set Default Key Size
keySize = 1024;
do
{
Console.Out.WriteLine("\n");
Console.Out.WriteLine("Choose Key in Bit");
Console.Out.WriteLine("-------------------------\n");
Console.Out.WriteLine("1 - 1024");
Console.Out.WriteLine("2 - 2048");
Console.Out.WriteLine("3 - 4096");
Console.Out.WriteLine("4 - Back");
Console.Out.Write("Enter Number: ");
while (!scanner.hasNextInt())
{
Console.Out.WriteLine("That's not a number! Enter 1,2,3 or 4:");
scanner.next();
}
choice = scanner.nextInt();
}
while (choice < 1 || choice > 4);
switch (choice)
{
case 1:
{
keySize = 1024;
break;
}
case 2:
{
keySize = 2048;
break;
}
case 3:
{
keySize = 4096;
break;
}
case 4:
{
console.menuGenKey();
break;
}
default:
{
console.menuGenKey();
break;
}
}
// Input Path for saving Private Key
Console.Out.WriteLine("Enter Path to saving Private Key (Type '" + quit +
"' to Escape):");
scanner.useDelimiter("\n");
if (scanner.hasNext(quit))
{
RsaUI.rsaCrypterFile(console);
}
privateKeyPath = scanner.next();
// Input Path for saving Public Key
Console.Out.WriteLine("Enter Path to saving Public Key (Type '" + quit + "' to Escape):"
);
scanner.useDelimiter("\n");
publicKeyPath = scanner.next();
// Initial Key Generator
console.getCore().getClient().setKeyAsymArt("RSA");
console.getCore().initAsymKey();
// Generate Keys
console.getCore().getKeyGenAsym().initGenerator(keySize);
publicKey = console.getCore().getKeyGenAsym().getPublicKey();
privateKey = console.getCore().getKeyGenAsym().getPrivateKey();
//Put private Key to File
try
{
CryptobyFileManager.putKeyToFile(privateKeyPath, privateKey);
}
catch (System.IO.IOException)
{
CryptobyHelper.printIOExp();
console.menuGenKey();
}
Console.Out.WriteLine("\nPrivate Key File saved to this Path:");
Console.Out.WriteLine(privateKeyPath);
//Put public Key to File
try
{
CryptobyFileManager.putKeyToFile(publicKeyPath, publicKey);
}
catch (System.IO.IOException)
{
CryptobyHelper.printIOExp();
console.menuGenKey();
}
Console.Out.WriteLine("\nPublic Key File saved to this Path:");
Console.Out.WriteLine(publicKeyPath);
// Enter for Continues
CryptobyHelper.pressEnter();
// Back to Menu Choose PrimeTest
console.menuGenKey();
}