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