使用javax.smartcardio的iText数字签名

时间:2014-06-30 19:06:15

标签: itext smartcard

我正在尝试用比利时智能卡签署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的完整来源吗?

1 个答案:

答案 0 :(得分:2)

请不要复制/粘贴我写过的示例而不阅读随附的书籍,在这种情况下是免费的电子书"Digital Signatures for PDF documents"

您提到的示例来自该书的第4.2.2节,标题为"使用smartcardsign从比利时eID中提取数据。"

请允许我自己引用(第105页):

  

我们可以使用javax.smartcardio API访问任何智能卡,但是   不幸的是,它通常不那么简单。每张卡都有自己的卡   文件结构,自己的应用程序,自己的数据定义等等   上。除了ISO / IEC规范,您始终需要   您要使用的卡的规格。我写了一个小的   将通用Java API类包装在诸如的对象中的库   CardReadersSmartCardSmartCardWithKey。我写了一个特别的   比利时eID的类,名为BeIDCard。你可以找到这个图书馆   在SourceForge。这意味着它是一个轻量级的库   仅支持基本功能。

您可以在脚注中找到该库的链接:http://sourceforge.net/projects/smartcardsign/

BeIDCertificates是此库的一部分,它有一个名为AUTHN_CERT_FILE_ID的常量。