3

我遇到了objEnroll.CreatePFX的问题,其中唯一的返回类型是字符串,我需要的是与打开证书MMC并导出PFX时发生的情况相当的二进制输出。如何从CertEnroll导出二进制PFX?

这很重要,因为我需要原始的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));