我想从Windows应用商店获取私钥并将其转换为PEM,以便在OpenSSL中使用它。 我一直在寻找一种方法来做几个小时!
但现在我又被卡住了。
我认为这是微软默默无闻的安全措施,以确保我们永远无法获得私钥。
答案 0 :(得分:2)
我将离开答案(毕竟没有dbasic我会被卡住:-)),但我还有更多要补充:
CryptExportPKCS8()支持终止于XP / 2003,因此我们必须使用PFXExportCertStoreEx(),但是此函数会导出WHOLE商店。因此,为了只导出一个证书,您需要使用内存存储。
查看此示例,了解如何执行此操作: http://msdn.microsoft.com/en-us/library/windows/desktop/aa382037(v=vs.85).aspx
将您想要的证书插入内存存储区,然后使用PFXExportCertStoreEx()导出您需要的内容。
答案 1 :(得分:0)
前两个很好。但是你需要使用CryptExportPKCS8。它将私钥导出为PKCS#8 DER编码形式的缓冲区。从PKCS#8开始,您可以将其转换为OpenSSL的X509结构(通过在BIO结构中使用d2i函数和内存缓冲区作为输入)。
但是,如果私钥被标记为不可导出,则此功能将失败。
只能使用您可以使用此类私钥对数据进行签名。