我需要 API,它能够从 Java 7 32 和 64 版本的智能卡上获取 PKCS#11 证书。SunPKCS11 不为 64 位 Java 7 提供解决方案。
编辑 > Arjun Sol 建议看看 Open SC。似乎非常通用的 API 集,但现在当我偶然发现我的卡是 Gemplus 并且不受此 API 支持时,我也在编辑描述。所以 - Open SC 无法处理所有卡片。
你可能想看看:https ://www.opensc-project.org/opensc/wiki/Java
智能卡访问本身可以本地处理:
来自 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);