Test CA(1)

 

/// <summary>
        /// Create CA
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button5_Click(object sender, EventArgs e)         //CreateCA
        {
            try
            {
                XENROLLLib.CEnroll cRoll = new XENROLLLib.CEnroll();
                cRoll.GenKeyFlags = 1;
                cRoll.KeySpec = 0x00000001;
                cRoll.UseExistingKeySet = 0;
                string dn = "C=CN;S=ShenZhen;L=ORG;O=ITT;OU=ITT;E=aa@163.com;CN=鄧**;";
                string reg = cRoll.createPKCS10(dn, "1.3.6.1.5.5.7.3.2");


                CERTCLIENTLib.CCertRequest certRequest = new CERTCLIENTLib.CCertRequest();
                //int CR_IN_Base64 = 0x1;
                //int CR_IN_PKCS10 = 0x100;
                int CR_IN_BASE64HEADER = 0x0;
                int CR_IN_BASE64 = 0x1;
                int CR_IN_PKCS10 = 0x100;

                int submit = certRequest.Submit(CR_IN_BASE64 | CR_IN_PKCS10, reg, "", @"itec-shenyunjun.ip-in-house.com\ShenYunJunRootCA");
                string scertificate = certRequest.GetFullResponseProperty(1, 0, 3, 1).ToString();
                scertificate = scertificate.Replace("-----BEGIN NEW CERTIFICATE REQUEST-----", "").Replace("-----END NEW CERTIFICATE REQUEST-----", "").Trim();

                cRoll.acceptResponse(scertificate);
            }
            catch (Exception ex)
            {
                string msg = ex.Message;
            }
        }

        private void button6_Click(object sender, EventArgs e)      //Get CA   Capicom
        {
            CAPICOM.IStore2 ostore = new CAPICOM.StoreClass();
            ostore.Open(CAPICOM.CAPICOM_STORE_LOCATION.CAPICOM_CURRENT_USER_STORE, "Root", CAPICOM.CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
            CAPICOM.Certificates ocerts = (CAPICOM.Certificates)ostore.Certificates;

            string path = string.Empty;
            int count = 0;
            foreach (CAPICOM.Certificate ocert in ocerts)
            {
                path = "D:\\" + Guid.NewGuid().ToString() + ".pfx";
                string subject = ocert.SubjectName.ToString();

                textBox1.Text += subject + "\r\n";

                string[] split = subject.Split(',');
                int len = split.Length;

                string ca_name = ocert.GetInfo(CAPICOM.CAPICOM_CERT_INFO_TYPE.CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME);
                for (int k = 0; k < len; k++)
                {
                    if ((split[k].Trim().StartsWith("S=")) && (split[k].Trim().Substring(2) == "ShenZhen") && (ca_name == "*澤東"))
                    {
                        string Pca_pwd = CreateRandomPWD(6);
                        ocert.Save(path, Pca_pwd, CAPICOM.CAPICOM_CERTIFICATE_SAVE_AS_TYPE.CAPICOM_CERTIFICATE_SAVE_AS_PFX, CAPICOM.CAPICOM_CERTIFICATE_INCLUDE_OPTION.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN);

                        string publickey = ocert.PublicKey().EncodedKey.Format(false);
                        string validfrom = ocert.ValidFromDate.ToShortDateString();
                        string validto = ocert.ValidToDate.ToShortDateString();
                        string serialnumber = ocert.SerialNumber.ToString();
                        string strThumbprint = ocert.Thumbprint.ToString();
                        byte[] ca_cer = Convert.FromBase64String(ocert.Export(CAPICOM.CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64));
                    }
                }
                count++;
            }
            int x = count;
        }

posted on 2009-01-05 15:52  ChinaLeo  阅读(412)  评论(0)    收藏  举报

导航