Функция Export
класса X509Certificate2
позволяет экспортировать
сертификат с закрытым ключом для байтового массива.
Следующий код демонстрирует экспорт сертификата с закрытым ключом:
X509Store store = new X509Store(StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
X509Certificate2 cert = store.Certificates[1];
// Export the certificate including the private key.
byte[] certBytes = cert.Export(X509ContentType.Pkcs12);
Для защиты экспортируемого сертификата используйте следующую перегрузку функции Export
:
byte[] certBytes = cert.Export(X509ContentType.Pkcs12, "SecurePassword");
НАЧАТЬ РЕДАКТИРОВАТЬ
Для импорта сертификата используйте следующий код:
X509Certificate2 certToImport = new X509Certificate2(arr, "SecurePassword");
// To mark it as exportable use the following constructor:
X509Certificate2 certToImport = new X509Certificate2(arr, "SecurePassword", X509KeyStorageFlags.Exportable);
// certToImport.HasPrivateKey must be true here!!
X509Store store2 = new X509Store(StoreName.TrustedPublisher,
StoreLocation.CurrentUser);
store2.Open(OpenFlags.MaxAllowed);
store2.Add(certToImport);
store2.Close();
КОНЕЦ РЕДАКТИРОВАНИЯ