【发布时间】:2019-04-11 19:34:55
【问题描述】:
我从 PE 文件中提取了 PKCS#7 内容。
证书链之前的第一部分(从开头到cert: 标签)包含有关文件完整性的信息。
特别是与文件哈希匹配的哈希以及用于生成此哈希的算法(在下面列出的示例中对应FA0FE65F973A5709DC04EE18ABEF353EBEFEA669 和sha1)。
我正在使用openssl,我想从X509 格式中提取哈希算法类型。我尝试了从调试器打印 md_algs 结构之类的方法,并希望找到 algorithm 值得 1.3.14.3.2.26 的字段,但这就是我所看到的......
p *(Pkcs7->d.sign->md_algs)
(stack_st_X509_ALGOR) $6 = {
stack = {
num = 1
data = 0x00000001024457f0
sorted = 0
num_alloc = 4
comp = 0x0000000000000000
}
}
在哪里可以看到算法字段?
附:这是 pkcs7 结构的相关部分:
PKCS7:
type: pkcs7-signedData (1.2.840.113549.1.7.2)
d.sign:
version: 1
md_algs:
algorithm: sha1 (1.3.14.3.2.26)
parameter: NULL
contents:
type: undefined (1.3.6.1.4.1.311.2.1.4)
d.other: SEQUENCE:
0:d=0 hl=2 l= 60 cons: SEQUENCE
2:d=1 hl=2 l= 23 cons: SEQUENCE
4:d=2 hl=2 l= 10 prim: OBJECT :1.3.6.1.4.1.311.2.1.15
16:d=2 hl=2 l= 9 cons: SEQUENCE
18:d=3 hl=2 l= 1 prim: BIT STRING
21:d=3 hl=2 l= 4 cons: cont [ 0 ]
23:d=4 hl=2 l= 2 cons: cont [ 2 ]
25:d=5 hl=2 l= 0 prim: cont [ 0 ]
27:d=1 hl=2 l= 33 cons: SEQUENCE
29:d=2 hl=2 l= 9 cons: SEQUENCE
31:d=3 hl=2 l= 5 prim: OBJECT :sha1
38:d=3 hl=2 l= 0 prim: NULL
40:d=2 hl=2 l= 20 prim: OCTET STRING [HEX DUMP]:FA0FE65F973A5709DC04EE18ABEF353EBEFEA669
cert:
cert_info:
...
谢谢
【问题讨论】:
标签: encryption openssl sha pkcs#7 asn1