我正在尝试用比利时eId智能卡签署pdf。我已经安装了Eclipse,下载了Java SDK 1.6,将文本5.4.5 jar smardcardsign-1.0 jar作为外部jar添加到构建路径中。
我想测试布鲁诺白皮书"PDF文档的数字签名"中的示例"4.6签名字符串进行身份验证"。
我从文本下载站点复制了C4_05_SignWithBEID.java文件。
我有一个错误"AUTHN_CERT_FILE_ID无法解决或不是一个字段"
为行X509Certificate cert = card.readCertificate(BeIDCertificates.AUTHN_CERT_FILE_ID);当我检查类BeIdCertificates的属性时,"AUTHN_CERT_FILE_ID"不可用。
是否有人提供了使用EidSignature类的示例4.8签名文档的完整源代码?
请不要在没有阅读我所写的书的情况下复制/粘贴我所写的例子,在这种情况下,免费电子书"PDF文档的数字签名"
您提到的示例取自该书的第4.2.2节,题为"使用smartcardsign从比利时eID中提取数据"。
请允许我引用自己的话(第105页):
我们可以使用
javax.smartcardio
API访问任何智能卡,但是不幸的是,事情通常没那么简单。每一张牌都有它自己的特点文件结构,自己的应用程序,自己的数据定义,等等上。除了ISO/IEC规范之外,您还需要您要使用的卡的规格。我写了一个小的类库,将泛型Java API类包装在对象中,例如CardReaders
,SmartCard
和SmartCardWithKey
。我写了一篇特别的类,命名为BeIDCard
。你可以找到这个图书馆在SourceForge上。它是一个轻量级的库只支持基本功能
您可以在脚注中找到该库的链接:http://sourceforge.net/projects/smartcardsign/
类BeIDCertificates
是这个库的一部分,它有一个名为AUTHN_CERT_FILE_ID
的常量。