예제 #1
0
파일: NameFrm.cs 프로젝트: Arsslensoft/OCT
        public void LoadCertificate(Al.Security.X509.X509Certificate cert)
        {
            System.Collections.IList oids   = cert.SubjectDN.GetOidList();
            System.Collections.IList values = cert.SubjectDN.GetValueList();
            bind = new x509NameBind();
            for (int i = 0; i < oids.Count; i++)
            {
                bind.Add(((Al.Security.Asn1.DerObjectIdentifier)oids[i]).Id, (string)values[i]);
            }

            LoadNames();
        }
예제 #2
0
        private void loadcert_Click(object sender, EventArgs e)
        {
            try
            {
                OpenFileDialog ofd = new OpenFileDialog();
                ofd.Filter = "*.cer|*.cer|*.crt|*.crt|*.der|*.der";
                if (ofd.ShowDialog() == DialogResult.OK)
                {
                    System.Security.Cryptography.X509Certificates.X509Certificate2 cer = new System.Security.Cryptography.X509Certificates.X509Certificate2(File.ReadAllBytes(ofd.FileName));

                    Al.Security.X509.X509Certificate CERT = Al.Security.Security.DotNetUtilities.FromX509Certificate(cer);
                    string prov = "DSA";
                    if (CERT.GetPublicKey() is Al.Security.Crypto.Parameters.RsaKeyParameters)
                    {
                        prov = "RSA";
                    }
                    else if (CERT.GetPublicKey() is Al.Security.Crypto.Parameters.DsaKeyParameters)
                    {
                        prov = "DSA";
                    }

                    // HASH-SizeWITH..
                    string hashsize = CERT.SigAlgName.Substring(0, CERT.SigAlgName.IndexOf("with"));
                    string hash     = hashsize.Split('-')[0];
                    int    hashsiz  = int.Parse(hashsize.Split('-')[1]);


                    nameFrm1.LoadCertificate(CERT);
                    keyGenerationFrm1.SetKeyParameters(prov, cer.PublicKey.Key.KeySize, CERT.SerialNumber.IntValue, hash, hashsiz);
                }
            }
            catch (Exception ex)
            {
                MessageBoxEx.Show(ex.Message, "Load Certificate");
            }
        }