私は 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);
}
ありがとう。