使用 OpenSSL API 验证 Authenticode 签名的可执行文件和 DLL

2024-01-21

我已经安装了openssl现在rsa_test.c运行良好。我想做的是:

  1. 打开任何exe或dll数字证书。提取指纹 and 公钥。 公钥包含exponent也是(如果您熟悉 ASN1 编码)。

  2. 现在我已经计算好了SHA-1文件的哈希值并将其与 MD 字段进行比较以发现其正确。所以现在我想通过指纹, 公钥->m and 公钥->e to RSA_公共_解密计算解密的函数SHA-1文件的哈希值。

What 填充算法我应该传递给该函数吗?当我经过时RSA_NO_PADDING,它解密但给我 128 字节长的哈希值,这根本不正确。对于所有其他填充算法选项,它返回未找到填充的错误。

您能否通过示例或良好的示例链接教我或告诉我传递函数的正确参数?


您应该使用PKCS7_验证 http://www.openssl.org/docs/crypto/PKCS7_verify.html函数来验证整个 PKCS #7 签名数据块。

您需要两个步骤来完全验证签名(请参阅微软规格 http://msdn.microsoft.com/en-US/windows/hardware/gg463183):

  1. 验证 PKCS #7 签名的完整性和身份。
  2. 计算消息摘要并将其与签名中指定的进行比较。

请注意,摘要不限于规范中的 SHA-1。摘要算法包含在签名的digestAlgorithm 字段中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 OpenSSL API 验证 Authenticode 签名的可执行文件和 DLL 的相关文章

随机推荐