3

У меня возникли проблемы с objEnroll.CreatePFX, где единственным типом возврата является строка, и мне нужен двоичный вывод, сопоставимый с тем, что происходит, когда я открываю MMC сертификатов и экспортирую PFX.Как я могу экспортировать двоичный PFX из CertEnroll?

Это важно, потому что мне нужен оригинальный формат PFX, поэтому я могу импортировать закрытый ключ в OSX и iPhone.

CX509Enrollment objEnroll = new CX509Enrollment(); 
    objEnroll.InitializeFromTemplateName(
       X509CertificateEnrollmentContext.ContextUser, 
       templateName); 
    // ... 
    objEnroll.Enroll(); 
    string pfxString = objEnroll.CreatePFX("q", PFXExportOptions.PFXExportEEOnly, EncodingType.XCN_CRYPT_STRING_BINARY); 

Что такое правильный способ установить EncodingType так, что он может быть правильно преобразован в двоичный выход? (Похожий на экспорт сертификатов Windows)

ответ

3

Просто напишите строку base64 в файл

System.IO.File.WriteAllText("MyFile.pfx", pfxString); 

Windows, будет обрабатывать PFX.

Вы также можете конвертировать base64 в двоичную с помощью

System.IO.File.WriteAllBytes("MyFile.pfx", System.Convert.FromBase64String(pfxString));