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



mercredi 15 octobre 2014

JavaCard sous Linux 64 bit



Installation de l'Environnement de 

Développement JavaCard

sous le Systeme d'Exploitation

« Linux Mint 17 - 64 bit »




PS: Linux Mint est un système d'exploitation GNU/Linux basé sur Ubuntu donc si vous avez ubuntu ou n'importe quel SE Linux , les étapes sont les meme .



Les outils necessaires pour l'installation de l’environnement sont :

- Eclipse - Version Luna Service Release 1 (4.4.1)
- JDK - Version 1.7.0_67 (la plus stable)
- JavaCardKit - Version 2.2.2
- Eclipse JCDE - Version 0.2




   1.  Installation d’OpenJDK

- Ouvrir le Terminal (ctrl+alt+t)
- Taper sudo apt-get install openjdk-7-jdk
- Entrer le mot de passe utilisateur et Valider
- Visiter http://openjdk.java.net/install/ pour plus d'informations.



Il faut vérifier que le JRE (plateforme qui sert à lancer et tourner des programmes Java) et le JDK (plateforme pour développer des programmes Java) sont installés et qu’ils fonctionnent sur l’ordinateur. À ce stade, nous testons la commande « java ». Si elle est reconnue alors le JRE est bien installé. Par la suite, nous testons la commande « javac » afin de vérifier si le JDK est bien installé :



  2  . Installation d’Eclipse

- Télécharger la derniére version compressée depuis http://www.eclipse.org/downloads/
- Extraire l’archive : ~/Desktop/javacard/eclipse
  3 . Ajout les plugins Eclipse JCDE

- Télécharger le fichier eclipse-jcde-0.2.zip depuis http://sourceforge.net/projects/eclipse-jcde/files/eclipse-jcde
- Extraire les fichiers
- Copie les plugins dans (eclipse-jcde-0.2) dans (eclipce) avec la commande :
sudo cp/home/ghada/Desktop/javacard/eclipse-jcde-0.2/plugins/* ~/Desktop/javacard/eclipse




  4. JavaCard Development Kit 2.2.2 (JCDK)

- Télécharger le JCDK :
- Extraire l’archive
- Extraire les 4 archives trouvant dans le dossier java_card_kit-2_2_2
- Créer un dossier jcdk sous (~/Desktop/javacard/jcdk)
- Copier le contenu du dossier contenant le bin et le lib dans le dossier jcdk




    - Lancer Eclipse et configurer la location java Card Development Kit :
    Window -> Preferences -> Java Card, puis donner le chemin vers le JCDK.

    5 . Les variables d’environnement






    - Ouvrir le terminal (ctrl+alt+t)
    - Taper gedit ~/.profile &
- Copier/Coller ces 3 lignes (Faites attention de modifier le chemin avec lequel ou vous avez mis les fichiers) :

export PATH=$PATH:~/Desktop/javacard/jcdk/bin/
export JAVA_HOME=/usr         //(export JAVA_HOME=/usr/jvm/java-1.7.0-openjdk-i386)
export JC_HOME=~/Desktop/javacard/jcdk


Now everything is installed and ready to make the first program :D
to install  Javacard dev environment under Windows click here to watch this video


dimanche 1 juin 2014

أعشقك صباحاً مساءا ،وقبل الحياة وبعد الممات,،وبرشا ورد.


I write to get my feelings out,
I write to stop the tears.

Do you remember when you told me that our love will last forever ?
Do you remember when you swore that you won’t be able to live without me ?
Do you remember when I asked you to never leave me alone?
Do you remember those” I love you more” fights an “you are the most beautiful girl in the word” ?
Do you remember all those nights we talked until we fell asleep? No ? I do.
.....
Do you remember when you didn’t keep your promise at the end ?

How young and naïve I was ,
All he did was make my eyes wetter
Do I really have to rhyme this? You all know the answer is pending.


I fell in love with a boy and it wasn’t a happy ending ...