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 :

Java Security KeyFactory RSA


Sujet :

Sécurité Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Par défaut Java Security KeyFactory RSA
    Bonjour,

    J'ai une clé publique sous la forme d'un byte[] de 76 cases, ce qui fait donc 608bits.

    Quand je fais un generatePublic de ma clé avec une KeyFactory, je me prends une exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Exception java.security.InvalidKeyException: RSA keys must be at least 512 bits long
    Donc je me demande si qqpart on se moque pas un peu de moi.

    Plus sérieusement, est ce que qqun sait d'où ça sort ? Est ce qu'il y a moyen de contourner ça ? Je dois remplir avec des 0 ?

    Bon, voila le code sinon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // Le format X.509 c'est pas moi qui le choisit, je reçoit la clé comme ça.
    X509EncodedKeySpec keySpec = new X509EncodedKeySpec(bytePublicKey);
    // keySpec.getEncoded retourne bien un byte[76]
     
    KeyFactory kfac = KeyFactory.getInstance("RSA");
    myPublicKey = (RSAPublicKey) kfac.generatePublic(keySpec); // <- c'est la que ça plante :/
    Merci d'avance

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Par défaut
    Bon, pour ceux que ça interresse un jour : java.security pour le RSA ne gere que les clés faisant de 512 à 2048 bits.

    Pour pouvoir utiliser des clés qui ne rentrent pas dans cette fourchette, il faut inclure la lib bouncy castle, section providers (voir leur site) et rentrer cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.security.Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
    puis apres au lieu d'appeler des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    KeyFactory.getInstance("RSA");
     
    ou 
     
    KeyPairGenerator.getInstance("RSA");
    il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    KeyFactory.getInstance("RSA", "BC");
     
    ou 
     
    KeyPairGenerator.getInstance("RSA", "BC");

    et tout marche comme sur des roulettes.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 05/01/2007, 13h27
  2. Applet log4j java.security.AccessControlException
    Par mickael.guilbert dans le forum Applets
    Réponses: 3
    Dernier message: 13/06/2006, 17h28
  3. java.security.AccessControlException: access denied
    Par ludonantes dans le forum Applets
    Réponses: 10
    Dernier message: 28/03/2006, 17h44
  4. Réponses: 2
    Dernier message: 27/03/2006, 17h05
  5. [Java Security Manager] ajouter des permissions
    Par dahwoud dans le forum Sécurité
    Réponses: 2
    Dernier message: 05/07/2005, 09h11

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