我正在尝试在C++中使用WinCrypt API。CryptoAPI/WinCrypt:如何用C++导入PEM文件中的私钥?
我的应用程序需要加密,解码,签名和验证文件,我知道如何做到这一点,只要我有正确的密钥。但我的问题实际上是那不是生成这些密钥的相同应用程序。
我有什么是公共和私有密钥中的文件以PEM格式:
和:
-----BEGIN RSA PUBLIC KEY-----
[Base64 encoded]
-----END RSA PUBLIC KEY-----
经过一番研究,我发现如何导入公共密钥:here和使用以下方法:
- 的CreateFile & ReadFile的读取该文件内容
- CryptStringToBinary,与CRYPT_STRING_BASE64HEADER从PEM格式转换为DER格式(删除从BASE64页眉和页脚和解码)
- CryptDecodeObjectEx与X509_PUBLIC_KEY_INFO
- CryptImportPublicKeyInfo,导入密钥
但现在,我的问题是这样做的蒙山私钥同样的事情。 任何帮助将真的非常感谢:) 谢谢。
Crypto API是用于专有加密,使用它的PGP只是更为有用 – marinara
是的,当然。但事实是我没有选择密钥的格式:否则我会选择CryptoAPI的专有格式。但是由于公钥导入可能来自PEM格式,所以我认为私钥也是可能的。 – nikloskoda