【发布时间】:2014-04-23 18:44:24
【问题描述】:
我正在读取一个 PKCS#15 文件 (asn1)。最终我得到了一个 pkcs#7 结构,其中包含一个 PasswordRecipientInfo (PBKDF2)。
我可以将 asn1 结构读入 Bouncy Castle EnvelopedData。我可以手动读取所有加密参数,并且我知道解密数据的密码。
但是如何将 EnvelopedData 转换为 CmsEnvelopedData 之类的东西(具有更多功能)。如果我将 asn1 数据提供给 CmsEnvelopedData 它会因数据格式错误等而失败。
我也使用 Rebex,但它似乎不支持 PasswordRecipientInfo 结构(尽管它们确实实现了 PBKDF2 密钥生成)。
我确实手动完成了所有解密,但最终没有得到有用的数据,所以我可能在所有 3Des 解密时都犯了错误。
这是示例 ASN1 流:
0:d=0 hl=4 l= 823 cons: SEQUENCE
4:d=1 hl=4 l= 815 cons: cont [ 2 ]
8:d=2 hl=2 l= 1 prim: INTEGER :02
11:d=2 hl=2 l= 105 cons: SET
13:d=3 hl=2 l= 103 cons: cont [ 3 ]
15:d=4 hl=2 l= 1 prim: INTEGER :00
18:d=4 hl=2 l= 27 cons: cont [ 0 ]
20:d=5 hl=2 l= 9 prim: OBJECT :PBKDF2
31:d=5 hl=2 l= 14 cons: SEQUENCE
33:d=6 hl=2 l= 8 prim: OCTET STRING [HEX DUMP]:91923125EC5C328F
43:d=6 hl=2 l= 2 prim: INTEGER :07D0
47:d=4 hl=2 l= 35 cons: SEQUENCE
49:d=5 hl=2 l= 11 prim: OBJECT :1.2.840.113549.1.9.16.3.9
62:d=5 hl=2 l= 20 cons: SEQUENCE
64:d=6 hl=2 l= 8 prim: OBJECT :des-ede3-cbc
74:d=6 hl=2 l= 8 prim: OCTET STRING [HEX DUMP]:9F040621A5AF002B
84:d=4 hl=2 l= 32 prim: OCTET STRING [HEX DUMP]:52237B22E48C5D579DBA6FD457DFC47C7C9F244306F3856CE98826C5657E9B60
118:d=2 hl=4 l= 701 cons: SEQUENCE
122:d=3 hl=2 l= 9 prim: OBJECT :pkcs7-data
133:d=3 hl=2 l= 20 cons: SEQUENCE
135:d=4 hl=2 l= 8 prim: OBJECT :des-ede3-cbc
145:d=4 hl=2 l= 8 prim: OCTET STRING [HEX DUMP]:4620AEA54621405F
155:d=3 hl=4 l= 664 prim: cont [ 0 ]
823:d=1 hl=2 l= 2 prim: INTEGER :0100
还有一些代码:
var ed = EnvelopedData.GetInstance(encodedkey);
【问题讨论】:
标签: c# bouncycastle pkcs#7