2010-03-31 142 views
52

我正在爲使用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看起來很有希望 - 有一些不錯的方法,但用「神祕」的論點。接下來做什麼?

+2

你見過本指南嗎? :[加密智能卡驅動程序開發指南](http://docs.blackberry.com/en/developers/deliverables/1127/BlackBerry%20JDE%20Cryptographic%20Smart%20Card%20Driver%20Development%20Guide.pdf) – 2011-09-30 07:33:09

+2

您能否解釋一下更清楚你代碼要做什麼,以及它如何失敗? – 2011-11-21 02:15:09

+2

這方面有沒有發展?我覺得你可能在超過一年半的時間後發現了它。我可能是錯的,但是如果你這樣做了,請發佈你的答案,並將其從未答覆的列表中刪除。 – Jon 2011-12-08 02:58:46

回答

0

您必須實現SmartCardSession方法,也實現了RSACryptoToken方法。 使用SmartCardSession方法,您將能夠與智能卡通信,並使用RSACryptoToken方法,您將能夠執行加密操作。 你必須閱讀有關APDU協議。