有一种方法可以创建包,添加一些部分并使用X509Certificate
.
我还想在包中添加时间戳签名。
如果证书过期或被吊销,并且包部分在到期/吊销之前已加盖时间戳,则签名应保持有效。
PS我正在使用程序System.IO.Packaging.Package
集中定义的类WindowsBase.dll
。
有一种方法可以创建包,添加一些部分并使用X509Certificate
.
我还想在包中添加时间戳签名。
如果证书过期或被吊销,并且包部分在到期/吊销之前已加盖时间戳,则签名应保持有效。
PS我正在使用程序System.IO.Packaging.Package
集中定义的类WindowsBase.dll
。
以下解决方案适用于您既是包的创建者又是消费者的情况:
System.IO.Packaging 中的数字签名依赖于XMLDSIG。RFC 3161中的受信任时间戳(或安全时间戳)与 XML 高级电子签名 ( XAdES ) 和 XAdES-T 配置文件一起添加到顶部。Microsoft Office 文档使用 System.IO.Packaging 作为其格式,因此 Microsoft 文档 ( MS-OFFCRYPTO ) 提到 XAdES-T 作为使用的形式。
不幸的是,.NET Framework 本身没有内置支持。而 Microsoft Office 能够利用受信任的时间戳进行数字签名。
Microsoft France于 2012 年发布了一个库来支持这些标准,但它已下线并且不再维护。但是Github上有源代码的快照。
还有一些您可能认为有帮助的其他库