我正在尝试在 C++中使用WinCrypt API 。
我的应用程序需要对文件进行加密、解密、签名和验证,一旦我拥有正确的密钥,我就知道该怎么做。但我的问题实际上是生成这些密钥的应用程序不同。
我拥有的是 PEM 格式文件中的公钥和私钥:
-----BEGIN RSA PRIVATE KEY-----
[Base64 encoded]
-----END RSA PRIVATE KEY-----
和 :
-----BEGIN RSA PUBLIC KEY-----
[Base64 encoded]
-----END RSA PUBLIC KEY-----
经过一番研究,我找到了如何导入公钥:here和here,使用以下方法:
- CreateFile & ReadFile读取文件内容
- CryptStringToBinary,使用CRYPT_STRING_BASE64HEADER从 PEM 格式转换为 DER 格式(删除页眉和页脚并从 base64 解码)
- CryptDecodeObjectEx与X509_PUBLIC_KEY_INFO
- CryptImportPublicKeyInfo,导入密钥
但是现在,我的问题是对private key做同样的事情。任何帮助将不胜感激:) 谢谢。