我需要以编程方式从MS证书存储中提取证书及其私钥,并以某种方式将它们转换为.PEM格式。我不想在命令行中使用OpenSSL,因为我希望将所有内容保存在内存中,避免使用文件。
我可以使用PFXExportCertStoreEx()将它们从Windows导出到PFX格式的blob。我通过将其写入文件并使用OpenSSL将其转换为.PEM来测试它。生成的.PEM文件工作正常。所以剩下的问题是让他们在内存中使用.PEM格式。
我们已经集成了一个需要.PEM的不同SSL库。 (这不是OpenSSL ...)所以我想在没有将OpenSSL源包含到我们的C ++项目中的情况下实现这一目标。有什么想法吗?
答案 0 :(得分:1)
如何静态链接到OpenSSL .lib文件?
我已经使用OpenSSL修改了一些示例来执行此操作,您可以在此处找到将pfx转换为pem的c ++代码: https://github.com/michaelmotes/PKCS12toPEM
此文件包含VB.NET Interop代码,用于使用OpenSSL将PFX转换为PEM:
https://github.com/michaelmotes/libCurlVB.NET-native/blob/master/LibCurlDecl.vb