1

我需要 API,它能够从 Java 7 32 和 64 版本的智能卡上获取 PKCS#11 证书。SunPKCS11 不为 64 位 Java 7 提供解决方案。

编辑 > Arjun Sol 建议看看 Open SC。似乎非常通用的 API 集,但现在当我偶然发现我的卡是 Gemplus 并且不受此 API 支持时,我也在编辑描述。所以 - Open SC 无法处理所有卡片。

4

1 回答 1

0

你可能想看看:https ://www.opensc-project.org/opensc/wiki/Java

智能卡访问本身可以本地处理:

http://docs.oracle.com/javase/6/docs/jre/api/security/smartcardio/spec/javax/smartcardio/package-summary.html

来自 java doc 的示例(为便于阅读而编辑):

// show the list of available terminals
TerminalFactory factory = TerminalFactory.getDefault();
List<CardTerminal> terminals = factory.terminals().list();
System.out.println("Terminals: " + terminals);

// get the first terminal
CardTerminal terminal = terminals.get(0);

// establish a connection with the card
Card card = terminal.connect("T=0");
System.out.println("card: " + card);
CardChannel channel = card.getBasicChannel();
ResponseAPDU r = channel.transmit(new CommandAPDU(c1));
System.out.println("response: " + toString(r.getBytes()));

// disconnect
card.disconnect(false);
于 2013-09-24T09:51:11.280 回答