我正在努力应对以下情况:
问:是否可以顺利地将分离的Pkcs#7转换为XML(例如,.net框架内的功能)?
Q2:还是可以在不使用外部插件的情况下创建XML客户端?
感谢你的帮助!
阿洛瓦·保林
发布于 2010-03-24 00:44:25
由于数字签名格式XML和PKCS#7的性质,不可能从一种转换到另一种。
在一个非常简单的解释中,PKCS#7格式的签名包含一些名为DigestInfo的特定数据结构,它包含数据摘要和一个OID (对象标识符),并且已经用用户的私钥加密。XML-Dsig格式将加密算法的最后一步(同样使用用户的私钥)应用于通过消化原始XML数据和一些特定的XML数据结构而计算出来的不同数据值。因此,由于这两个加密值都不是相同的,所以只能通过用用户的私钥对数据进行签名来生成XML签名,而您将无法访问该私钥(因此名为私有)。
根据这个解释,你的第一个问题的答案是“不,没有平滑的选择,根本不可能”。
因此,唯一的选择是直接在客户端生成XML。这是不可能使用标准Javascript的,绝对不能与火狐的window.crypto (它只生成PKCS7分离签名)。在我的公司(www.isigma.es),我们使用applet解决了这一问题,这是数字签名行业中常见的解决方案(有许多商业解决方案,也有一些开源解决方案)。如果你不想要浏览器插件的话,这在你的情况下可能不是一个选项。
CAPICOM (您可以在Microsoft安装程序中使用的基于windows的active/X组件)也不生成XML,只生成CMS/PKCS7 7。
https://stackoverflow.com/questions/1995757
复制相似问题