Я пишу приложение для 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
выглядит многообещающим - имеет несколько полезных методов, но с "загадочными" аргументами. Что делать дальше?