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

Sécurité Java Discussion :

SunPKCS11-GemSafe: bloque à l'infini sur l'appel à KeyStore load()


Sujet :

Sécurité Java

  1. #1
    Membre régulier Avatar de cyrille37
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 155
    Points : 120
    Points
    120
    Par défaut SunPKCS11-GemSafe: bloque à l'infini sur l'appel à KeyStore load()
    Bonjour,

    J'essaye d'utiliser le certificat d'un TokenUSB Gemplus mais un problème survient au moment du load() du KeyStore.

    J'ai cherché sur google, mais aucun problème semblable, que des problèmes de signature S/MIME...

    Alors donc :

    Le provider est bien référencé.
    L'instance du KeyStore est bien retournée.
    Par contre à l'appel à la méthode load() du KeyStore et bien l'application reste bloquée sur cet appel. Aucune erreur n'est signalée, et les lignes suivantes de l'appli ne sont pas exécutées. Obligé de faire un Control-C pour arrêter.

    OS :
    Windows XP SP2

    Java :
    java version "1.6.0_01"
    Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
    Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)

    fichier gemsafe-pkcs11.cfg
    name=GemSafe
    library=C:\Program Files\Gemplus\GemSafe Libraries\BIN\gclib.dll

    librairie PKCS11 de Gemplus (GemSafe):
    gclib v6.0.9.0 (PKCS#11 v2.01 - Multiplexer for Cryptoki API)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    char[] pin = "123456".toCharArray();
    Provider provider = Security.getProvider("SunPKCS11-GemSafe");
    if( provider == null )
     return ;
    System.out.println("Provider Ok");
    ks = KeyStore.getInstance("PKCS11");
    System.out.println("KeyStore Ok");
    ks.load(null, pin);
    // la ligne suivante n'est jamais affichée et
    // un control-C est nécessaire pour arrêter l'appli.
    System.out.println("KeyStore Loaded");
    Alors je viens vers vous à la recherche d'idée pour débloquer la situation...
    Merci d'avance
    Cyrille

  2. #2
    Membre régulier Avatar de cyrille37
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 155
    Points : 120
    Points
    120
    Par défaut
    Alors le problème est carrement général :

    Je viens de faire des essais avec l'outil keytool, et ça fait pareils. En fait quand keytool demande le password pour le keystore et bien plus rien ... un control-C est nécessaire.

    on dirait bien une incompatibilité. Un problème de transfert du password entre java et le token ...

    cyrille.

  3. #3
    Membre régulier Avatar de cyrille37
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 155
    Points : 120
    Points
    120
    Par défaut ya un bug chez SUN
    ya le meme bug sur bugs.sun.com avec le ACOS5 SDK (Advanced Card Systems Ltd) au lieu de GemSafe.
    http://bugs.sun.com/bugdatabase/view...bug_id=6560267
    C'est exactement le meme diagnostic.

    Suis-je le seul à avoir ce problème ?

    Le token-usb est celui obtenu avec le certificat classe 3 de CertiGreffe.

  4. #4
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut chez moi ca marche
    Ca marche très bien chez moi, J'ai la même conf que vous, mais mon fichier driver pkc11 est dans, pour
    être dans le path.

    c:\Windows\system32\gclib.dll

  5. #5
    Membre régulier Avatar de cyrille37
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 155
    Points : 120
    Points
    120
    Par défaut
    Bonjour et merci beaucoup pour votre contribution !

    Alors j'ai copié gclib.dll :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >dir c:\Windows\system32\gclib.dll
     Répertoire de c:\Windows\system32
     
    27/09/2006  13:06           233 472 gclib.dll
    puis je lance la commande keytool :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >keytool -list --keystore NONE -storetype PKCS11
    Tapez le mot de passe du Keystore :
    A partir du moment où je tape le mot de passe, l'outil keytool consomme 100% de CPU jusqu'à l'appui sur les touches Control-C.

    Avez vous fait ce même test ou bien autre chose ?

    Encore merci
    cyrille.

  6. #6
    Membre régulier Avatar de cyrille37
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 155
    Points : 120
    Points
    120
    Par défaut
    Au lieu d'utiliser le provider GemSafe il suffisait d'utiliser le provider Sun MS CAPI (SunMSCAPI) qui est d'origine connu par la JVM
    et qui fourni l'interface avec API Crypto de Windows.

    Et là pas de problème ça fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SP2] reboot infini sur chkdisk
    Par Emmanuel Delahaye dans le forum Windows XP
    Réponses: 14
    Dernier message: 26/08/2006, 12h57
  2. Pb de tri sur treeview appelant table sous mysql
    Par forzaxelah dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/07/2006, 09h49
  3. [VB6] Question sur l'appellation d'un elements
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 10/06/2006, 23h51
  4. Out of memory sur un appel de smtpsend
    Par frangin2003 dans le forum Modules
    Réponses: 1
    Dernier message: 01/06/2006, 14h16
  5. Alimenter le context sur un appel Javascript ?...
    Par Sylvain James dans le forum XMLRAD
    Réponses: 2
    Dernier message: 20/10/2003, 15h44

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