使用XML直接签署Office Word文档

我正在尝试使用直接XML格式的C#签署Microsoft Office Word文件。

这里有一些问题和模棱两可的问题,例如:

  • 我应该如何填写摘要值,我应该为每个参考准确消化什么值,以及我应该为每个转换消化什么值?
  • 我应该签署什么价值来创建SignatureValue
  • 我应该在x509数据中包含哪些证书以及如何? (我们没有确切的证书,所以我们非常感谢您创建一个证书。)

最后一个问题是我正确地这样做了吗? 也许这里有什么问题,我错过了一个软件包,否则它本身会与openxml文件交互并签名。

但请记住,我实际上是尝试使用外部令牌签署数据,该外部令牌具有可用的pkcs11接口(但没有CSP),所以我使用了PKCS11 Interop库将其迁移到c#,但我在这里仍然有点困惑。

  • 有没有我可以用来签署word文档的包?
  • 或者是否有一个简化openXML交互的软件包?
  • 或者我必须手动完成吗?

只是为了抬头任何执行openXML交互的库也应该允许我使用pkcs11命令对文档进行签名(即,它给我字节流来签名和消化,但是其他部分本身,pkcs11真的不应该被认为是重要的在这里(你可以用我的自定义算法替换它))

BTW中的签名构建器如下所示:

                                                                                  YYYY-MM-DDThh:mm:ssTZD 2015-11-22T17:21:28Z            TEST SIGNING 10.0 15.0 15.0 1 1920 1080 32 {00000000-0000-0000-0000-000000000000}  9 1         2015-11-22T17:21:28Z        E=ali@ali.com, CN=ALI-PC, OU=ALI-PC, O=ALI-PC, L=ALI-PC, S=ALI-PC, C=98 1           http://uri.etsi.org/01903/v1.2.2#ProofOfOrigin Created and approved this document    TEST SIGNING        

您可以查看该项目的源代码,它涵盖了MS Office文档的基本数字签名。 请注意,代码有点过时,但原则是相同的