1

我有 WinXP 客户端。我的目标是使用 C# 中的 XEnroll 库创建证书请求。我找到了工作代码,因此客户端可以创建请求,但我得到的证书没有密钥和数据加密。我看到,可以使用 CERTENROLLLib 创建这样的请求,但我必须使用 XEnroll。

那么,我怎么能做这样的事情,使用 XEnroll:

// Key Usage Extension 
objExtensionKeyUsage.InitializeEncode(
       X509KeyUsageFlags.XCN_CERT_DIGITAL_SIGNATURE_KEY_USAGE | 
       X509KeyUsageFlags.XCN_CERT_NON_REPUDIATION_KEY_USAGE | 
       X509KeyUsageFlags.XCN_CERT_KEY_ENCIPHERMENT_KEY_USAGE | 
       X509KeyUsageFlags.XCN_CERT_DATA_ENCIPHERMENT_KEY_USAGE
       );
objPkcs10.X509Extensions.Add((CX509Extension)objExtensionKeyUsage);

这是我的代码:

string distNAme = "CN=" +
    userName +
    ",OU=UserUnit" +
    ",O=CRYPTO-PRO" +
    ",L=MOSCOW" +
    ",S=WA" +
    ",C=RU";
string usage = "1.3.6.1.5.5.7.3.2";

var enroll = new CEnrollClass();

enroll.ProviderType = 75;
enroll.ProviderName = "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider";

string request = enroll.createPKCS10(distNAme, usage);

var dialog = new System.Windows.Forms.SaveFileDialog();
if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    System.IO.File.WriteAllText(dialog.FileName, request);
}

谢谢。

4

0 回答 0