static void Main(string[] args) { string certname = ""; string pass = ""; KeyRecovery prg = new KeyRecovery(args); prg.OTP.OnOptionEntered = new Option.OptionEnteredHandler(prg.OnOTP); prg.ParseArguments(); certname = Path.GetFullPath(prg.keyPath.Value); pass = prg.pvkPass.Value; X509Certificate2 xcert; try { if (pass.Length > 0) xcert = new X509Certificate2(certname, pass); else throw new ArgumentNullException("pass"); prg.rsadec = xcert.PrivateKey as RSACryptoServiceProvider; prg.ProcessInputKeyFile(); } catch (Exception exp) { if(pass == null) Console.WriteLine("Private Key Password Null Exception "); else Console.WriteLine("Exception {0}", exp.Message); } }
/// <summary> /// Main Function /// </summary> /// <param name="args">Command line arguments</param> static void Main(string[] args) { string certname = ""; string pass = ""; KeyRecovery prg = new KeyRecovery(args); prg.OTP.OnOptionEntered = new Option.OptionEnteredHandler(prg.OnOTP); prg.ParseArguments(); pass = prg.pvkPass.Value; X509Certificate2 xcert; try{ certname = Path.GetFullPath(prg.keyPath.Value); if (pass.Length > 0) { xcert = new X509Certificate2(certname, pass); } else { throw new ArgumentNullException("pass"); } prg.rsadec = xcert.PrivateKey as RSACryptoServiceProvider; #if DBUG string locmess = "Welcome to iFolder 3.6"; string locCert = "e:/Data/ifolder/arul_1024_2.der"; string encmess; byte [] expo = { 1, 0, 1 }; byte[] pubke; byte[] p12pubkey; RSAParameters rsa = new RSAParameters(); X509Certificate enccert = X509Certificate.CreateFromCertFile(locCert); //X509Certificate2 enccert = new X509Certificate2(locCert); RSAParameters rsaprv = prg.rsadec.ExportParameters(false); //prg.rsaenc = enccert.PublicKey.Key as RSACryptoServiceProvider; //RSAParameters rsapub = prg.rsaenc.ExportParameters(false); pubke = enccert.GetPublicKey(); p12pubkey = xcert.GetPublicKey(); rsa.Modulus = new byte[128]; Array.Copy(pubke, 7, rsa.Modulus, 0, 128); rsa.Exponent = expo; prg.rsaenc = new RSACryptoServiceProvider(); prg.rsaenc.ImportParameters(rsa); Console.WriteLine("Public Key String: {0}", Convert.ToBase64String(xcert.GetPublicKey())); Console.WriteLine("Public Key String: {0}", Convert.ToBase64String(enccert.GetPublicKey())); //Console.WriteLine("Public Key String: {0}", enccert.ToString(true)); //Console.WriteLine("Public Key String: {0}", xcert.ToString(true)); Console.WriteLine("Public Key String Stripped: {0}", Convert.ToBase64String(rsa.Modulus)); Console.WriteLine("Public Key String2 Stripped: {0}", Convert.ToBase64String(rsaprv.Modulus)); Console.WriteLine("Enc mess {0}:", encmess = Convert.ToBase64String(prg.rsaenc.Encrypt(Encoding.UTF8.GetBytes(locmess), false))); Console.WriteLine("Denc mess {0}:", Encoding.UTF8.GetString(prg.rsadec.Decrypt(Convert.FromBase64String(encmess), false))); #endif //DBG prg.ProcessInputKeyFile(); } catch (Exception exp) { if (pass == null) { Console.WriteLine("Private Key Password cannot be null. Try again. "); } else { Console.WriteLine("Error while processing certificate. Try again"); } Console.WriteLine(exp.Message); } }