Java中管理XAdES签名的库

14
我正在寻找一个Java库,可以创建和验证XAdES签名(格式越多越好:XAdES-BES,XAdES-C,XAdES-X-L等)。我发现最有趣的实现是:
- Java XML数字签名API(JSR 105)(=包含在Java SE 6中的API),它基于以下API; - Apache Santuario(http://santuario.apache.org/),仅提供基本功能的有用支持; - XAdES4j(http://code.google.com/p/xades4j/,漂亮的演示:http://prezi.com/06vyxbgohncv/xades4j-en/),似乎很有趣,因为它“使得能够在主要XAdES形式(XAdES-BES,XAdES-EPES,XAdES-T和XAdES-C)中生成、验证和扩展签名。此外,通过对现有签名进行丰富,还支持扩展形式”。但是它是一篇论文的结果,只有一个开发人员在维护; - eID数字签名服务(http://code.google.com/p/eid-dss/),由比利时联邦信息和通信技术部门开发,支持XAdES-X-L格式。
你会建议使用哪一个或者在哪一个上进行开发呢?

截至今日,XAdES4J仍不支持XAdES-X-L。 - user1539372
@toadue:XAdES4j支持创建XAdES-X-L签名,但无法验证它们。 - Hubert Kario
3个回答

5
我们最近完成了一个项目,使用XAdES-BES签名,既有封装形式,也有包含形式。我们选择了XAdES4j项目,因为它似乎是最完整的,并且XAdES是一个核心要求。
Q&A部分的支持有时很慢,只有最明显的用例得到了很好的文档支持。尽管如此,该库经过了充分测试,设计优秀,非常有用。
我们花了几周时间来理解它,现在我会推荐它作为一个平台。
唯一的限制是(正如你所说),它是一个学术项目的产物,所以它将来会得到多少支持是任何人的猜测。如果你接手并采用它,请考虑做出贡献,这样它可能会加速发展。

1
我已经扩展了 xaded4j 以支持完整的 XAdES-A,补丁已经在错误跟踪器中。 - Hubert Kario

4

我不建议使用它。我们正在使用这些组件,但是遇到了许多问题。它存在很多漏洞,整体感觉是一个质量非常低劣的产品。 - Juan Calero
我对西班牙语不是很熟悉,但它不也是在EUPL 1.1下授权的吗? - Philip Helger
很遗憾,这两个链接都已经失效了。 - meles

1

仅为了完整列表,我们的SecureBlackbox(Java版)XMLBlackbox包提供对所有XAdES版本的全面支持,并得到积极维护和支持。


除非我读错了他们的文档,或者他们没有将这个更改放入更改日志中,否则看起来该库的Java版本不支持标准1.4.2版本的ArchiveTimeStamp(XAdES-A)。这将使得使用它生成的A表单在2012年或2013年之后无法与合格签名一起使用,现在记不清了... - Hubert Kario
@HubertKario 支持 XAdES-A。可能需要编写一两行额外的代码,但这不是问题。 - Eugene Mayevski 'Callback
@HubertKario 所有支持的配置文件都在 http://www.eldos.com/sbb/desc-xml-spec.php 上列出,而 XAdES-A 也在列表中。此外,这是列出特定配置文件的唯一位置。 - Eugene Mayevski 'Callback
您提供的链接没有说明您支持哪个版本的标准。当前欧盟法律要求在1.4.1命名空间中创建“ArchiveTimeStamp”属性(因此理论上与标准1.3.2版本中的ArchiveTimeStamp完全不同),并支持1.4.1命名空间中的TimeStampValidationData属性。如果您支持它,那就很好。上次我检查时,您没有支持,现在我找不到文档了,所以无法检查是否有所改变。 - Hubert Kario
@HubertKario 如果您没有找到任何东西,欢迎联系技术支持。SO不是提供此类支持的地方。 - Eugene Mayevski 'Callback

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接