我正在尝试X509Certificate2
使用以下代码导出证书的公钥:
X509Store certificateStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
certificateStore.Open(OpenFlags.ReadOnly);
var exportCertificates = certificateStore.Certificates.Find(X509FindType.FindByThumbprint, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", false);
certificateStore.Close();
// Get Base64 string of the public key
byte[] arr = exportCertificates[0].PublicKey.EncodedKeyValue.RawData;
string b64ExportCertificate = Convert.ToBase64String(arr);
// Import the certificate
X509Certificate2 importCertificate = new X509Certificate2(Convert.FromBase64String(b64ExportCertificate));
当我执行最后一行时,会引发以下异常:
System.Security.Cryptography.CryptographicException
Cannot find the requested object
有谁知道如何解决这个问题?
注意:上面的代码示例是“功能性的”,但它是伪代码。实际上,我在一个应用程序中导出证书,然后为了数字签名而传输到另一个应用程序(因此只发送公钥)