51

我正在为使用 BlackBerry 智能卡读卡器的 BlackBerry 编写应用程序。关于这个主题的文档不多,所以我真的很想有人能给我一些开始的例子。

基本上,卡上有一个 RSA 私钥和一个证书(用于配对公钥)。我希望能够加密/解密数据并对其进行签名。最终目标是使用智能卡上包含的客户端证书建立相互验证的 SSL 连接。

这是我到目前为止设法提出的代码:

SmartCardReader btReader = null;
SmartCardReader[] readers = SmartCardReaderFactory.getInstalledReaders();
for (int i = 0; i < readers.length; i++) {
    SmartCardReader reader = readers[i];
    if (reader.getType().equalsIgnoreCase("bluetooth")) {
        btReader = reader;
        break;
    }
}

SmartCardReaderSession readerSession = reader.openSession();
CryptoSmartCard card = (CryptoSmartCard) readerSession.getSmartCard();
RSACryptoToken token = (RSACryptoToken) card.getCryptoToken("RSA");

token看起来很有希望 - 有一些不错的方法,但带有“神秘”的论点。接下来做什么?

4

2 回答 2

1

我认为这就是你要找的:

http://code.google.com/p/seek-for-android/wiki/BTPCSC

于 2011-12-12T21:49:55.180 回答
0

您必须实现 SmartCardSession 方法,还必须实现 RSACryptoToken 方法。使用 SmartCardSession 方法,您将能够与智能卡通信,使用 RSACryptoToken 方法,您将能够执行加密操作。您还必须阅读有关 APDU 协议的信息。

于 2012-02-16T10:49:09.450 回答