Я пытаюсь экспортировать открытый ключ сертификата 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
Кто-нибудь знает, как решить эту проблему?
ПРИМЕЧАНИЕ. Пример кода выше «функционален», но это псевдо-код. На самом деле я экспортирую сертификат в одну заявку, а затем пересылаю в другую для цифровой подписи (следовательно, отправляю только открытый ключ)