8
đang
CspParameters cspParameters = new CspParameters();
cspParameters.ProviderType = 1; // PROV_RSA_FULL
// Create the crypto service provider, generating a new
// key.
mRsaCSP = new RSACryptoServiceProvider(mDefaultKeyLength, cspParameters);
mRsaCSP.PersistKeyInCsp = true;
RSAParameters privateKey = mRsaCSP.ExportParameters(true);
byte[] rsaBytes = mRsaCSP.ExportCspBlob(true);
try
{
X509Certificate2 cert = new X509Certificate2(rsaBytes);
mKeyDataPfx = Convert.ToBase64String(cert.Export(X509ContentType.Pkcs12, password));
}
catch (Exception ce)
{
string error = ce.Message;
}
Khóa RSA không tương thích trực tiếp với Chứng chỉ X509. Chứng chỉ X509 cần có khóa được ký bởi tổ chức phát hành, ngay cả khi nó được ký tự. Bạn có thể cho chúng tôi biết bạn đang thực sự cố gắng thực hiện điều gì không? Bạn đang cố gắng tự động tạo chứng chỉ X509 trong mã? –
Có. Đó chính là điều tôi đang cố gắng làm. Ý tưởng là tôi có các chứng chỉ RSA cũ được lưu trữ dưới dạng chuỗi với RSACryptoServiceProvider.ToXmlString (true). Những thứ đó sẽ cần được đọc và xuất dưới dạng tệp PFX. Chứng chỉ RSA mới sẽ cần được tạo và lưu trữ dưới dạng tệp PFX. – chiefbrownbotom
Tôi khuyên bạn nên kiểm tra mã nguồn Bouncy Castle .NET và các ví dụ. Tôi nghĩ rằng ví dụ bccrypto-net-1.7-src \ csharp \ crypto \ test \ src \ pkcs \ example \ PKCS12Example.cs sẽ giúp bạn bắt đầu. http://www.bouncycastle.org/csharp/ –