J'écris une application pour BlackBerry qui utilise un lecteur de carte à puce BlackBerry. Il n'y a pas beaucoup de documentation sur le sujet, donc j'aimerais vraiment que quelqu'un puisse me donner des exemples de départ.
Fondamentalement, il y a une clé privée RSA sur la carte plus un certificat (pour la clé publique appariée). J'aimerais pouvoir crypter/décrypter des données et également les signer. L'objectif final serait d'établir une connexion SSL mutuellement authentifiée en utilisant le certificat du client contenu dans la carte à puce.
Voici le code que j'ai réussi à mettre au point jusqu'à présent :
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");
Ce site token
semble prometteur - il possède quelques méthodes intéressantes, mais avec des arguments "énigmatiques". Que faire ensuite ?