Bonjour, je viens vers vous tous afin de savoir si le comportement que j'obtiens avec le package javax.smartcardio est correct ou non. Je vous explique mon problème. Je commence par faire une SelectCommand sur mon applet du styleLa réponse obtenue est00 a4 04 00 10 a0 00 00 00 18 50 00 00 00 00 00 00 52 41 44 41
Ensuite je fais la commande suivante90 00qui doit normalement me renvoyer00 78 00 00car j'ai 6 bytes de données à récupérer. C'est là que les choses se corsent dans la mesure ou la réponse "Java" est6c 06Ne comprenant pas le comportement, j'ai décidé d'utiliser un sniffer USB pour observer les échanges entre le lecteur et le PC et là c'est le bouquet. La réponse reçue mais pas transmise à mon prog est bien 6c 06 et il y a ensuite la trame APDU de commande suivante (je ne sais pas qui comment pourquoi elle est envoyée) 00 78 00 06. Déjà la logique aurait été de faire une commande de ce style 00 78 00 00 06. Bien entendu la cardlet me répond 6c 06 et on part dans une boucle infernale qui se termine avec l'exception.Exception in thread "main" javax.smartcardio.CardException: Could not obtain response
at sun.security.smartcardio.ChannelImpl.doTransmit(ChannelImpl.java:169)
at sun.security.smartcardio.ChannelImpl.transmit(ChannelImpl.java:73)
at test.Main1.main(Main1.java:88)
Java Result: 1
J'aimerai donc savoir si ce comportement est un comportement standard (même si je n'ai rien vu là dessus) et si ce n'est pas le cas pourquoi la réponse 6c 06 est interprété par un JONI (Java Objet Non Identifié).
J'ai fait un autre petit essai en envoyant la commandele résultat est quasiment identique dans la mesure ou il me renvoie un 61 6+taille_data non vu (réponse demandant une commande GetResponse C0) et que la commande qui est générée automatiquement est00 78 00 00 taille_data [data]et me retourne bien mes données par la suite (même si je ne lui ai pas vraiment demandé)00 C0 00 00 6+taille_data
Bref je suis dans un bon brouillard et j'aimerai bien qu'une lanterne m'éclaire un peu histoire de savoir si je suis fou ou si le package présente quelques problèmes.
Je tiens à préciser que j'ai utiliser un petit script Python et un autre en Perl qui me renvoient eux les bonnes valeur et me permettent de communiquer dans les standards de la norme 7816-4
Partager