private void btnLoadPubKey_Click(object sender, EventArgs e) { OpenFileDialog dlgOpen = new OpenFileDialog(); dlgOpen.Filter = "公钥文件(*.pub, *.pem)|*.pub;*.pem|全部文件(*.*)|*.*";; if (dlgOpen.ShowDialog() == DialogResult.OK) { RSACryptoServiceProvider rsa = PemKeyUtils.GetRSAProviderFromPemFile(dlgOpen.FileName); if (rsa == null) { string s = File.ReadAllText(dlgOpen.FileName); if (s.StartsWith("ssh-rsa ")) { string[] ss = s.Split(' '); rsa = PemKeyUtils.DecodeX509PublicKey(ss[1]); } else { rsa = new RSACryptoServiceProvider(); rsa.FromXmlString(s); } } if (rsa != null) { tbClientPublicKey.Text = rsa.ToXmlString(false); } else { DlgError("密钥加载失败,仅支持xkey,x509格式以及pem格式密钥。\n支持ssh-keygen生成的密钥。"); } } }
private void btnLoad_Click(object sender, EventArgs e) { OpenFileDialog dlgOpen = new OpenFileDialog(); string key; dlgOpen.Filter = FILTER_KEYS; if (dlgOpen.ShowDialog() == DialogResult.OK) { RSACryptoServiceProvider rsa = PemKeyUtils.GetRSAProviderFromPemFile(dlgOpen.FileName); if (rsa == null) { key = File.ReadAllText(dlgOpen.FileName); rsa = new RSACryptoServiceProvider(); rsa.FromXmlString(key); } tbPrivateKey.Text = rsa.ToXmlString(true); tbPublicKey.Text = rsa.ToXmlString(false); } }