我正在尝试用比利时智能卡签署PDF格式。我已经安装了Eclipse,下载了Java SDK 1.6,将mysxt 5.4.5 jars smardcardsign-1.0 jar作为外部jar添加到构建路径中。
我想测试Bruno的白皮书“PDF文档的数字签名”中的示例“4.6签署字符串以进行身份验证”。
我从itext下载站点复制了C4_05_SignWithBEID.java文件。
我收到错误“AUTHN_CERT_FILE_ID无法解析或不是字段” 对于X509Certificate证书= card.readCertificate(BeIDCertificates.AUTHN_CERT_FILE_ID);
当我检查类BeIdCertificates的属性时,“AUTHN_CERT_FILE_ID”不可用。
有人是使用EidSignature类签署文档的示例4.8的完整来源吗?
答案 0 :(得分:2)
请不要复制/粘贴我写过的示例而不阅读随附的书籍,在这种情况下是免费的电子书"Digital Signatures for PDF documents"。
您提到的示例来自该书的第4.2.2节,标题为"使用smartcardsign从比利时eID中提取数据。"
请允许我自己引用(第105页):
我们可以使用
javax.smartcardio
API访问任何智能卡,但是 不幸的是,它通常不那么简单。每张卡都有自己的卡 文件结构,自己的应用程序,自己的数据定义等等 上。除了ISO / IEC规范,您始终需要 您要使用的卡的规格。我写了一个小的 将通用Java API类包装在诸如的对象中的库CardReaders
,SmartCard
和SmartCardWithKey
。我写了一个特别的 比利时eID的类,名为BeIDCard
。你可以找到这个图书馆 在SourceForge。这意味着它是一个轻量级的库 仅支持基本功能。
您可以在脚注中找到该库的链接:http://sourceforge.net/projects/smartcardsign/
类BeIDCertificates
是此库的一部分,它有一个名为AUTHN_CERT_FILE_ID
的常量。