我希望解析并显示从Window PE二进制安全目录中提取的Authenticode PKCS#7签名的内容。通过Windows API解码PKCS#7签名?
我可以使用OpenSSL在命令行上使用“openssl pkcs7 -text -in extracted_signature.pks -inform DER -print_certs
”执行此操作,但是我需要通过C/C++和Windows API执行此操作。我不能使用OpenSSL库本身。
使用CryptDecodeObjectEx
API我可以开始提取的签名进行解码:
CRYPT_CONTENT_INFO * content_info;
DWORD len;
CryptDecodeObjectEx(
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
PKCS_CONTENT_INFO,
pointer_to_extracted_signature,
length_of_extracted_signature,
CRYPT_DECODE_ALLOC_FLAG,
NULL,
&content_info,
&len
);
以上调用成功完成,并content_info->pszObjId
将有“1.2.840.113549.1.7.2”(szOID_RSA_signedData)的OID但是我我无法找到继续解码所需的结构。 CryptDecodeObjectEx的可用OID列于here。
任何人可以请告知如何将验证码PKCS#7签名通过Windows API解码?