Hash OpenSSL消息摘要创建

Hash OpenSSL消息摘要创建,hash,openssl,sha256,smime,Hash,Openssl,Sha256,Smime,基本问题是我用“openssl smime”生成一个签名文档并能够验证它,但我的合作伙伴没有(使用不同的软件)。所以我试着深入研究,看看他和我的信息摘要是否相同。但是-我甚至无法找出我的文档中实际(并且正确)使用了什么消息摘要 我有一个名为“cleartext.txt”的文件,其中包含任意文本。那我会的 $ openssl smime -sign -md sha256 -nocerts -inkey as2.key -signer as2.crt -outform PEM < cleart

基本问题是我用“openssl smime”生成一个签名文档并能够验证它,但我的合作伙伴没有(使用不同的软件)。所以我试着深入研究,看看他和我的信息摘要是否相同。但是-我甚至无法找出我的文档中实际(并且正确)使用了什么消息摘要

我有一个名为“cleartext.txt”的文件,其中包含任意文本。那我会的

$ openssl smime -sign -md sha256 -nocerts -inkey as2.key -signer as2.crt -outform PEM < cleartext.txt > signature.txt
$ openssl sha256 cleartext.txt
$ openssl asn1parse -in signature.txt 
最后一条语句向我显示了我的证书的详细信息(因此至少这里有一些东西在工作)以及


为什么我用其中一个命令得到“c64df2…”而用另一个命令得到“0e68d5…”?如果我甚至不能在明文上复制哈希值,我怎么能指望我的搭档验证我的签名呢?

经过阅读和尝试后找到的解决方案:RFC2049在第4(2)章中要求将明文转换为规范格式,即使用CRLF作为行结尾

openssl smime-sign以静默方式对其输入文件进行此转换,但openssl sha256不会

只要我自己使用CRLF,结果就和预期的一样

SHA256(cleartext.txt)= c64df2df82cc1dab9f9b06d41fab458de976de7e149fe0854fe125a96ef151dd
  251:d=8  hl=2 l=   9 prim: OBJECT            :pkcs7-data
  262:d=6  hl=2 l=  28 cons: SEQUENCE          
  264:d=7  hl=2 l=   9 prim: OBJECT            :signingTime
  275:d=7  hl=2 l=  15 cons: SET               
  277:d=8  hl=2 l=  13 prim: UTCTIME           :200107145037Z
  292:d=6  hl=2 l=  47 cons: SEQUENCE          
  294:d=7  hl=2 l=   9 prim: OBJECT            :messageDigest
  305:d=7  hl=2 l=  34 cons: SET               
  307:d=8  hl=2 l=  32 prim: OCTET STRING      [HEX DUMP]:0E68D5CC9A859736EEE842355C1FD73F3FC9B274657A97F4CAF38AD3344ACBC8
  341:d=6  hl=2 l= 121 cons: SEQUENCE          
  343:d=7  hl=2 l=   9 prim: OBJECT            :S/MIME Capabilities
  354:d=7  hl=2 l= 108 cons: SET               
  356:d=8  hl=2 l= 106 cons: SEQUENCE          
  358:d=9  hl=2 l=  11 cons: SEQUENCE          
  360:d=10 hl=2 l=   9 prim: OBJECT            :aes-256-cbc
  371:d=9  hl=2 l=  11 cons: SEQUENCE          
  373:d=10 hl=2 l=   9 prim: OBJECT            :aes-192-cbc
  384:d=9  hl=2 l=  11 cons: SEQUENCE          
  386:d=10 hl=2 l=   9 prim: OBJECT            :aes-128-cbc
  397:d=9  hl=2 l=  10 cons: SEQUENCE          
  399:d=10 hl=2 l=   8 prim: OBJECT            :des-ede3-cbc
  409:d=9  hl=2 l=  14 cons: SEQUENCE          
  411:d=10 hl=2 l=   8 prim: OBJECT            :rc2-cbc
  421:d=10 hl=2 l=   2 prim: INTEGER           :80
  425:d=9  hl=2 l=  13 cons: SEQUENCE          
  427:d=10 hl=2 l=   8 prim: OBJECT            :rc2-cbc
  437:d=10 hl=2 l=   1 prim: INTEGER           :40
  440:d=9  hl=2 l=   7 cons: SEQUENCE          
  442:d=10 hl=2 l=   5 prim: OBJECT            :des-cbc
  449:d=9  hl=2 l=  13 cons: SEQUENCE          
  451:d=10 hl=2 l=   8 prim: OBJECT            :rc2-cbc
  461:d=10 hl=2 l=   1 prim: INTEGER           :28
  464:d=5  hl=2 l=  13 cons: SEQUENCE          
  466:d=6  hl=2 l=   9 prim: OBJECT            :rsaEncryption
  477:d=6  hl=2 l=   0 prim: NULL              
  479:d=5  hl=4 l= 256 prim: OCTET STRING      [HEX DUMP]:4CBEA622925F2CD899D2B5A0D26F831C0D63DE88FC5CC1E89F8F164E84526E49194AD537426378D6932DA066425A117B9FA96A70E2000F603449095AAF8E0B93D0D4EB26FC2B3D86726F94928882C37ACEF0537555DEB4AF3D63943A05A109D49B941C8131A9734C15BA7418F2D34E6B63B710E975EDE1EB9A71A40C251D6D72A5C802F3CDAE123E5E47413DC414DF8A2B0BB6E225145224C33E64245F6E4BD3EC3A60E0B0D6FAA8F9BE69BFA0B27E4A3326E819EF8A1C13738CA1A02D08F74D22C52ABA84D6FD26BE8EA6461251162CD751DC6DC2A30FB45211AC28B371F5FEDB57C3845DA04C4C0FFC40760C623C574471CECD4681E7755277B8BFD8F31730