Lecteurs de cartes à puces et PC/SC - Divers - Programmation
Marsh Posté le 16-04-2005 à 18:55:55
Non ce sont des smart cards 'normales'. Je dispose de smart card "de données" que je peux lire directement, des especes de mini disquettes en fait.
Enfin ce n'est pas grave j'ai trouvé une solution qui fonctionne, à base d'un composant Delphi. Il est fait pour le Chipdrive mais en utilisant une autre DLL on peut le faire fonctionner avec le SCR335.
Je peux donc lire les cartes sans avoir besoin d'utiliser les APDU et c'est beaucoup plus simple comme ca. Le probleme c'est que ca ne fonctionne pas pour les smart cards avec CPU, mais bon c'est pas trop grave pour ce que je veux en faire.
Marsh Posté le 14-04-2005 à 13:07:24
Bonjour,
Je dispose de deux lecteurs de cartes à puces, un Chipdrive micro 110 connecté sur le port COM et un SCR335 branché lui en USB. Je veux simplement lire le contenu des cartes insérées dans les lecteurs. De plus ces deux lecteurs sont compatibles avec la norme PC/SC.
Je me suis orienté vers l'utilisation du framework java JPCSC qui permet de communiquer avec les lecteurs. J'arrive bien à détecter les deux lecteurs.
Je peux me connecter à la carte située dans le lecteur mais il y a déja quelque chose de byzare : pour le chipdrive je n'arrive me connecter qu'en RAW et pour le SCR335 ca ne fonctionne qu'en T0. C'est d'autant plus étrange que les deux lecteurs sont censés supporter le protocole T0. Mais ce n'est pas encore trop génant.
Le problème principal est que je n'arrive pas lire les données contenues sur la carte quand j'utilise le lecteur USB. Quand je suis avec le chipdrive, j'envoie l'APDU de lecture de 5 octets :
et ca marche bien je recois les données mais quand je le fais avec l'autre lecteur j'obtient le code erreur 6E00.
Je ne comprend pas pourquoi Confused PC/SC n'est il pas censé permettre un mode de communication standardisé quel que soit le lecteur connecté? Est-ce une erreur due à JPCSC ?
J'ai pensé qu'il y avait peut etre un APDU différent pour ce lecteur, j'ai donc tenté une méthode "brute-force" en générant tous les paquets possibles (en faisant varier les deux premier octets et en conservant toujours les trois derniers) et même en faisant comme ça, toutes les réponses étaient les même sauf pour 3 APDU (mais dans tous les cas ca ne représentait pas le contenu de la carte).
Mon objectif étant simplement de lire la carte, quelle que soit la méthode et le langage (tant qu'on reste sous WIndows), y a t'il une autre façon de faire ou aurais je le même problème en utilisant d'autres API ?
Vue la difficultée pour trouver de la doc, n'importe quelle idée est la bienvenue.
En vous remerciant.
Message édité par MagicDad le 14-04-2005 à 13:08:30