La
communication avec une carte se fait via un lecteur. Au niveau
application, les commandes envoyées sont transformées en
APDU, dont le format est normalisé par la norme ISO 7186-4:
| CLA |
INS |
P1 |
P2 |
Lc |
Données de la commande |
Le |
– CLA = Classe de commande
– INS = Numéro d'instruction
– P1, P2 = Paramètres immédiats
– Lc = Longueur des données
– Le = Longueur attendue de la réponse
Par exemple, une commande qui permet de sélectionner une
application sur la carte pourrait être:
| 00h |
A4h |
00h |
04h |
05h |
A0h 01h 23h 45h 67h |
12h |
- Une réponse est ensuite renvoyée par la carte:
| Lr |
Données de la réponse |
SW1 |
SW2 |
– Lr = Longueur des données de la réponse
– SW1, SW2 = Mot de statut résultant de la commande
• 90h 00h : OK
• 67h 00h : Mauvaise longueur des données
- En ZCBasic ca se traduit sous la forme d'une déclaration de la commande suivi de son appel :
Rem declaration ou dans l'exemple si-dessous &HA0 correspond à la classe de commande.
Rem declaration ou dans l'exemple si-dessous &HA4 correspond au numéro d'instruction.
Rem declaration ou dans l'exemple si-dessous S$ correspond aux données de la commande.
Rem declaration ou dans l'exemple si-dessous Le correspond à la longueur attendue de la réponse.
Declare Command &HA0 &HB2 RREC(S$)
Rem appel de la commande
Call RREC(P1P2=&H0104,S$,Le=176)