如何导入使用WinCrypt和C ++ PEM格式的私钥?

问题描述 投票:4回答:1

我想用C ++中的WinCrypt API

我的应用程序需要到加密,解密,签名和验证的文件,我知道该怎么做,一旦我有正确的钥匙。但我的问题其实是,这不是产生这些密钥相同的应用程序。

我所拥有的是在PEM格式文件的公钥和私钥:

-----BEGIN RSA PRIVATE KEY-----
[Base64 encoded]
-----END RSA PRIVATE KEY-----

和:

-----BEGIN RSA PUBLIC KEY-----
[Base64 encoded]
-----END RSA PUBLIC KEY-----

经过一番研究,我发现如何导入公共密钥:herehere,使用以下方法:

  • 的CreateFile与ReadFile的读取文件内容
  • CryptStringToBinary,与CRYPT_STRING_BASE64HEADER从PEM格式转换为DER格式(删除从BASE64页眉和页脚和解码)
  • CryptDecodeObjectEx与X509_PUBLIC_KEY_INFO
  • CryptImportPublicKeyInfo,可以,导入密钥

但现在,我的问题是做同样的事情,用私钥。任何帮助将是非常非常感谢:)谢谢。

c++ windows cryptography cryptoapi pem
1个回答
8
投票

PEM的私钥可以通过使用PKCS_RSA_PRIVATE_KEY CryptDecodeObjectEx,然后调用CryptImportKey导入CAPI。

我写了一个示例,演示了如何使用编码的RSA私钥使用CAPI签名数据的PEM。下面是它的链接:http://www.idrix.fr/Root/Samples/capi_pem.cpp

我希望这将有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.