可以使用哪些API从Gemplus智能卡(PKCS11)读取证书

时间:2013-09-24 09:49:45

标签: java pkcs#11

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

编辑> Arjun Sol建议看一下Open SC。看起来非常通用的API集,但是现在当我偶然发现我的卡是Gemplus而且这个API不支持时,我正在编辑描述。 所以 - Open SC无法处理所有卡片。

1 个答案:

答案 0 :(得分: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);