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;
}
浙公网安备 33010602011771号