2

我目前正在为我的国家制定一些法律要求(电子发票),但我被困在签名部分,这里是背景:

  1. 政府为每个用户提供一个.p12证书文件
  2. 生成 XML 后,必须根据前面提到的 .p12 证书使用 XAdES-EPES 对其进行签名。

我对证书和安全工件不太了解,我发现了一个名为:Xades4J的 java 库,但是大多数示例都提到了 KeyStore 和 TSA(顺便说一句,我不太了解 TSA 是什么),我有使用起来似乎很简单,但我相信提到的大多数示例都远非复杂。

任何人都可以帮我了解这些概念和/或提供一个示例,说明如何使用已经具有 p12 文件的 XAdES-EPES 进行签名吗?

我也看到了一些我将测试的 C# 示例,事情是我主要使用 Java 进行编码。

提前致谢

4

2 回答 2

2

最近,在 xades4j Github 问题中,围绕与您的需求非常相似的场景进行了对话。签出这个问题:

https://github.com/luisgoncalves/xades4j/issues/134

它包括使用 p12 文件作为证书/密钥的示例代码。希望这可以帮助。

于 2017-12-29T15:41:47.070 回答
1

让我们从头开始。

KeyStore :在一个简单的概念中,它是您存储证书的地方,在签名过程之前,您必须选择通常从 KeyStore 中提取的证书 ->在这里您可以全面了解什么是 keyStore。

TSA:Time Stamp Autoriry,这是一个外部实体,如果您需要政府接受您的签名,它必须是官方实体。这将为您提供时间戳标记,并将在您之前的签名中添加额外信息,以确保您的证书有效并且签名在该时间段内是正确的。这是扩展您有关签名的信息的紧密上下文

请记住,不推荐使用 XAdES-EPES,您应该使用 XAdES-A(如果您需要定期时间戳)或 AdES-LTA。

万一且仅在您的应用程序在西班牙具有法律背景的情况下,您可以使用此工具来做您需要的事情:唱和验证签名

希望这可以帮助。

于 2017-12-28T16:56:21.057 回答