Como ver quais atributos são assinados nos pkcs # 7?

Eu tenho um arquivo pkcs # 7, que contém dados assinados. Verifica com sucesso:

$ openssl smime -verify -in data.p7s -CAfile root-certificate.pem 
Verification successful
Signed data

Mas quando extraio a parte assinada, não vejo que ela seja realmente a mesma que foi assinada. Quero dizer os seguintes passos:

$ openssl asn1parse -in data.p7s
...
   35:d=4  hl=2 l=   9 prim: OBJECT            :pkcs7-data
   46:d=4  hl=2 l=inf  cons: cont [ 0 ]        
   48:d=5  hl=2 l=inf  cons: OCTET STRING      
   50:d=6  hl=2 l=   5 prim: OCTET STRING      :(my data is here in plaintext)
...
(then the signed block starts:)
 2861:d=6  hl=2 l=   9 prim: OBJECT            :rsaEncryption
 2872:d=6  hl=2 l=   0 prim: NULL              
 2874:d=5  hl=4 l= 256 prim: OCTET STRING      [HEX DUMP]:<signed data is here>

Eu cortei o[HEX DUMP] com os dados assinados:

$ dd if=data.p7s of=signed-part.bin bs=1 skip=2878 count=256

Descriptografá-lo com a chave pública correspondente:

$ openssl rsautl -verify -in signed-part.bin -pubin -inkey root-public-key.pem -out verified-data.bin

e olhe dentro do resultado:

$ openssl asn1parse -inform der -in verified-data.bin
    0:d=0  hl=2 l=  33 cons: SEQUENCE          
    2:d=1  hl=2 l=   9 cons: SEQUENCE          
    4:d=2  hl=2 l=   5 prim: OBJECT            :sha1
   11:d=2  hl=2 l=   0 prim: NULL              
   13:d=1  hl=2 l=  20 prim: OCTET STRING      [HEX DUMP]:<hash here>

este[HEX DUMP] énão a soma SHA1 dos meus dados originais.

Eu não entendo por que o hash é diferente. Obviamente, é um hash de algo diferente dos meus dados originais. O hash também abrange quaisquer "atributos autenticados"? Se sim, como ver exatamente quais atributos foram hash e assinados?

questionAnswers(1)

yourAnswerToTheQuestion