/// <summary> /// Read SSH2 private key parameters. /// </summary> /// <param name="passphrase">passphrase for decrypt the key file</param> /// <param name="keyPair">key pair is set</param> /// <param name="comment">comment is set. empty if it didn't exist</param> /// <exception cref="SSHException">failed to parse</exception> public void LoadSSH2PrivateKey( string passphrase, out KeyPair keyPair, out string comment) { PrivateKeyFileFormat format = ProbeFormat(); ISSH2PrivateKeyLoader loader; if (format == PrivateKeyFileFormat.SSH2_SSHCOM) { loader = new SSHComPrivateKeyLoader(keyFile, keyFilePath); } else if (format == PrivateKeyFileFormat.SSH2_OPENSSH) { loader = new OpenSSHPrivateKeyLoader(keyFile, keyFilePath); } else if (format == PrivateKeyFileFormat.SSH2_PUTTY) { loader = new PuTTYPrivateKeyLoader(keyFile, keyFilePath); } else { throw new SSHException(Strings.GetString("UnsupportedPrivateKeyFormat")); } loader.Load(passphrase, out keyPair, out comment); }
/// <summary> /// Read SSH1 private key parameters. /// </summary> /// <param name="passphrase">passphrase for decrypt the key file</param> /// <param name="modulus">private key parameter is set</param> /// <param name="publicExponent">private key parameter is set</param> /// <param name="privateExponent">private key parameter is set</param> /// <param name="primeP">private key parameter is set</param> /// <param name="primeQ">private key parameter is set</param> /// <param name="crtCoefficient">private key parameter is set</param> /// <param name="comment">comment</param> /// <exception cref="SSHException">failed to parse</exception> public void LoadSSH1PrivateKey( string passphrase, out BigInteger modulus, out BigInteger publicExponent, out BigInteger privateExponent, out BigInteger primeP, out BigInteger primeQ, out BigInteger crtCoefficient, out string comment) { PrivateKeyFileFormat format = ProbeFormat(); ISSH1PrivateKeyLoader loader; if (format == PrivateKeyFileFormat.SSH1) { loader = new SSH1PrivateKeyLoader(keyFile, keyFilePath); } else { throw new SSHException(Strings.GetString("UnsupportedPrivateKeyFormat")); } loader.Load(passphrase, out modulus, out publicExponent, out privateExponent, out primeP, out primeQ, out crtCoefficient, out comment); }