IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Débutez avec SmartCard


Sujet :

avec Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Débutez avec SmartCard
    Bonjour à tous,

    Je travail actuellement pour une société sous contrat avec le GIP-CPS, je dois développer une Applet JAVA qui interroge une carte CPS (c'est une carte à puce dans mon cas pour les pharmaciens) de manière à permettre à nos clients (donc les pharmaciens) de se logger sur leur interface de gestion (sur notre site web) et de signer numériquement leurs documents (feuilles de garde ...).

    Je suis débutant complètement novice sur les cartes à puce, ça fait maintenant 2 mois que je fais des recherches sur le web (forums, tutoriels, ebooks) et voici mon soucis:
    J'arrive à me connecter à la carte grâce au code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                factory = TerminalFactory.getDefault();
                terminals = factory.terminals().list();
                terminal = terminals.get(0);//car mon terminal est le premier de la liste
                card = terminal.connect("*");//protocole de connexion automatique
    //Dans mon cas c'est le protocole T=0 qui passe car la carte ne supporte que lui ^^
                channel = card.getBasicChannel();
     
          /*Jusque la tout va bien*/
     
                //maintenant je vais envoyer une commande APDU à la carte
                cmd = new CommandAPDU((byte)0x80, (byte)0x20, (byte)0x00, (byte)0x04);//CLA, INS, P1, P2 , pour le code PIN 
     
                reponse1 = channel.transmit(cmd);
    bon évidement le tout est dans un "try catch" j'ai systématiquement un retour de la carte qui dit: erreur CLA ou erreur INS (SW1 SW2: E6 00 ou D6 00)

    Je voudrais donc un peu d'aide, si des gentilles personnes passent par ici

    Merci

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Il faut que tu analyse le protocole de communication. Il est probable que plusieurs protocoles cohabitent. Si c'est le cas, le choix peut se faire via des switchs physique sur le terminal. Et l'abréviation de switch, c'est "SW" : ça pourrait expliquer ton message d'erreur.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Pour le protocole de communication c'est donné dans la doc de la carte : T=0 après j'ai le choix entre faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    card = terminal.connect("*");
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    card = terminal.connect("T=0");
    ça reviens exactement au même juste que dans le premier cas si mon protocole avait été T=1 alors c'est ce protocole qui serait passé.

    Concernant le SW ça veux dire "Status Word". C'est les codes que renvoie la carte, si il n'y a pas d'erreurs, elle me renvoie SW1/SW2 = 90/00 et après je peut récupérer les données que la carte m'envoie avec la méthode "getData()"

    Ce que je recherche c'est plus un exemple de code qui se connecte à une carte CPS (pas de javacard ou carte sim ou autre car j'en ai déjà vu des dizaines et ça m'a pas été beaucoup )

  4. #4
    vic
    vic est déconnecté
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2002
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 431
    Points : 498
    Points
    498
    Par défaut
    Ce projet de cartes de professionnels de santé dure depuis des années ... Je ne peux pas croire que tu pars de zéro en ce qui concerne la lecture des cartes !

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Salut,

    Ouais je sais que ce projet est pas tout récent le problème c'est que tout ce que je trouve sur le net n'est pas super bien expliqué, du coup je suis un peu sous un amas d'informations (openCard Framework, JavaCard, pkcs#11, passer par du JNI ... ) et je ne sais plus quoi faire.

    Donc j'ai décidé de faire un programme simple mais je coince au niveau des APDU à envoyer.

    Si quelqu'un peu m'aider ? (niveau théorie je pense avoir compris quoique mais en pratique )

    Merci par avance aux âmes charitables.

  6. #6
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut
    Citation Envoyé par gatien69003 Voir le message
    Bonjour à tous,

    Je travail actuellement pour une société sous contrat avec le GIP-CPS, je dois développer une Applet JAVA qui interroge une carte CPS (c'est une carte à puce dans mon cas pour les pharmaciens) de manière à permettre à nos clients (donc les pharmaciens) de se logger sur leur interface de gestion (sur notre site web) et de signer numériquement leurs documents (feuilles de garde ...).

    Je suis débutant complètement novice sur les cartes à puce, ça fait maintenant 2 mois que je fais des recherches sur le web (forums, tutoriels, ebooks) et voici mon soucis:
    J'arrive à me connecter à la carte grâce au code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                factory = TerminalFactory.getDefault();
                terminals = factory.terminals().list();
                terminal = terminals.get(0);//car mon terminal est le premier de la liste
                card = terminal.connect("*");//protocole de connexion automatique
    //Dans mon cas c'est le protocole T=0 qui passe car la carte ne supporte que lui ^^
                channel = card.getBasicChannel();
     
          /*Jusque la tout va bien*/
     
                //maintenant je vais envoyer une commande APDU à la carte
                cmd = new CommandAPDU((byte)0x80, (byte)0x20, (byte)0x00, (byte)0x04);//CLA, INS, P1, P2 , pour le code PIN 
     
                reponse1 = channel.transmit(cmd);
    bon évidement le tout est dans un "try catch" j'ai systématiquement un retour de la carte qui dit: erreur CLA ou erreur INS (SW1 SW2: E6 00 ou D6 00)

    Je voudrais donc un peu d'aide, si des gentilles personnes passent par ici

    Merci
    Bonjour à tous,
    Je sais que le sujet date un peu mais en faisant une recherche je suis tombé dessus, et à priori il semble abandonner.
    Ca pourra peu etre aider les personnes succéptibles de rencontrer le meme problèmes.
    Normalement un apdu fais 5 byte ( à confirmer), sinon as-tu essayer de "wrapper" l'api galss32.dll fournit par le GIE ? si t'a les droits, tu peu l'utiliser, elle te simplifiera largement la tache.
    Pour ton status E6 ou D6, suis pas certain qu'ils soient bon, en generale c'est kelkechose comme 6E XX.

    Voila, t'a peu etre trouvé la solution, si c'est le cas ca pourrais etre interessant de donner la solution,
    Sinon n'hésite pas à me répondre.

    Cordialement,

  7. #7
    Futur Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    bonjour,
    je travaille sur un projet assez similaire je dois récupérer les données de carte cps également.
    J'aimerai savoir si tu as réussi grâce au requête APDU a recevoir les informations que tu souhaite .
    j'utilise pour le moment les méthodes de winscard dll.
    merci d'avance si quelqu'un repasse par la

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    je viens de prendre connaissance de ce post et je suis extrêmement intéressé par un exemple de code.

    L'un d'entre vous a-t-il avancé sur le sujet ?
    On ne peut en effet pas dire que ce soit les docs qui pullulent sur le net à ce propos !

    Merci par avance
    Cdt
    Stephane

Discussions similaires

  1. [ZF 1.7] Tuto Débutez avec Zend_Auth : erreur
    Par CinePhil dans le forum Zend_Acl & Zend_Auth
    Réponses: 8
    Dernier message: 21/01/2010, 14h28
  2. [ZF 1.7] Erreurs dans le cour Débutez avec Zend_Auth
    Par c_creatix dans le forum Zend_Acl & Zend_Auth
    Réponses: 3
    Dernier message: 10/02/2009, 14h12
  3. Applet pour s'autentifier sur un serveur avec Smartcard
    Par jojolepabo dans le forum Applets
    Réponses: 1
    Dernier message: 16/07/2008, 16h23
  4. Tutoriel : Débutez avec le Designer, par Adrien Artero
    Par Fleur-Anne.Blain dans le forum Designer
    Réponses: 0
    Dernier message: 16/05/2008, 09h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo