我有一个由 M2Crypto python 库生成的 PKCS7 文件,如下所示:
-----BEGIN PKCS7-----
MIIBWAYJKoZIhvcNAQcDo[cut]
-----END PKCS7-----
是由公钥加密的二进制内容。
现在我需要用 C++ 解密它,但它似乎无法识别这种格式。我试过d2i_PKCS7_bio()
and SMIME_read_PKCS7()
,但我总是收到如下错误:
8957:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1316:
8957:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:380:Type=PKCS7
以及通过命令行尝试的类似错误,如下所示:
openssl smime -decrypt -inform DER -binary -inkey privkey.pem
编辑
我找到了正确的命令行选项:
openssl cms -decrypt -in samplepkcs7.pem -inkey privkey.pem -inform pem
现在我需要在 C++ 中找到相应的函数。
也许我错了,但是很难找到关于此的文档。任何帮助,将不胜感激。