コード例 #1
0
ファイル: MainForm.cs プロジェクト: kingron/RSATool
        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生成的密钥。");
                }
            }
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: kingron/RSATool
        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);
            }
        }