lundi 24 novembre 2014

JavaCard TP3



Programmation carte à puce - JavaCard



Tp3 :


Programmation de l’application Client




développement d'une application cliente pour communiquer avec la carte

Les étapes :


- Création de l’application client sous Eclipse


→ nouveau projet java nomé Application cliente

→ Ajout de la librairie « apduio » dans le classpath qui se trouve dans C:\JCDK 

\java_card_kit-2_2_2\lib

creation du package puis la classe principale MaClasse

Codage de notre application:




les étapes du codages :

Connection à JavaCard : qui se fait via une socket , Le simulateur écoute par 

défaut sur le port 9025 , Et la classe CadT1Client pour les échanges de données.

Sélection de l'applet JavaCard : qui se fait en envoyant la commade SELECT 

APDU

Invoquation des services implémentés dans l'applet : initialisation d'une 

instance de l'objet APDU et l'envoyer à la carte via l'instance de la classe CadT1Client

Déconnection à JavaCard : Via la méthode powerDown(). 


- Utilisation de l'application cliente et d'un simulateur


Avec simulateur JCWDE :

- création du fichier "de configuration" qui Il permet de lister les applets Javacard à 

installer pour la simulation et de spécifier leurs AID respectifs.

Ce fichier est nommé "monapplet.app" (répertoire parent du package contenant le 

fichier class de l'applet card du tp2 « .\workspacejavacard\JavaCardTP 2\bin ») . Il 

contiendra la ligne suivante :

"monpackage.MonApplet0x01:0x02:0x03:0x04:0x05:0x06:0x07:0x08:0x09:0x00:0x00"







- lancement du simulateur :     → terminal

                                                     → cd \workspacejavacard\JavaCardTP 2\bin

                                           → jcwde monapplet.app


- lançement de l'application cliente





  • Commençons par interroger le compteur : tapons 1 puis ok


  • Incrémentation le compteur 3 fois puis décrémentation une fois.




=> le compteur = 2


  • Quittons maintenant l'application cliente (commande 5). Nous pouvons voir que le simulateur se termine automatiquement à la réception de la commande "powerdown" 





Avec simulateur CREF :


- Lançement du CREF à partir de l'image EEPROM que nous avons générée





dimanche 23 novembre 2014

JavaCard TP2



Programmation  carte à puce - JavaCard


 Tp2 :

Programmation de l’application Serveur

(Applet Javacard) 




Développer une applet Java Card et la tester à l'aide d'un simulateur de carte.

Les étapes :

- Création de l'applet card sous Eclipse

- Codage de l'applet (install() , process() .. )

- Simulation : 3 outils :           → APDUTOOL : envoi/réception d'APDU

                                           → JCWDE : simulateur sans conservation d'état

                                           → CREF : simulateur avec conservation d'état







Lors de la création d’une nouvelle Applet, deux méthodes seront implémentées install() et
process().

La méthode Install (): permet la création d’une instance de la classe MonApplet avec le mot clé «new» et l’enregistre dans le système de la carte avec la méthode register() .


La méthode process(): qui permet l’interprétation de chaque commande APDU et l’exécution de cette commande.



Après l’étape de développement, nous générons le package pour avoir automatiquement les

APDU de la création et l'installation de l’applet et la sélection. Par la suite nous passons à l’étape de simulation.



      • Simulation JCWDE



Lancement du simulateur JCWDE :





Terminal → « apdutool » afin d’envoyer et de recevoir les APDU.






Apres la generation des scripts,

copier/coller le script de create-MonApplet.script pour installer l'applet.




copier/coller les scripts select-MonApplet.script pour sélectionner l’applet que nous voulons tester.






Maintenant nous pouvons commencer à tester notre applet, le premier APDU est une commande pour interroger le compteur. Elle prend 02 comme valeur de INS et elle retourne un résultat un APDU qui contient Le =01 et la valeur du compteur =00. 

Le SW1 =90 ce qui implique la réussite du traitement.






Incrémentation du compteur .la réponse APDU retourne SW1=90.






L’opération suivante consiste à interroger de nouveau le compteur. Elle retourne la valeur de compteur qui égale à 01.







l’étape suivante, nous allons initialiser le compteur à 4a, donc la commande APDU doit
contenir la class CLA, l’instruction de l’initialisation INS, le Lc=01(la taille de donnée à

envoyer), et la donnée contenant 4a.



Après l’initialisation du compteur à 4a, nous allons décrémenter le compteur.




Enfin nous allons interroger de nouveau le compteur. le résultat est égale à 49 (4a-1=49)






powerdown; pour la déconnecter du simulateur.



        • Simulation : CREF



- Terminal → cref -o monapplet.eeprom



- Upload l'applet : Java Card Tools puis Deploy






- Nous pouvons voir les APDUs envoyés dans la zone Console d'Eclipse

- Relançons CREF
- installation de l'applet : run du script create-applet.script
-Nous pouvons utiliser apdutool pour tester notre carte, de la même manière qu'avec JCWDE