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 :

[Crypto] Bouncy Castle Provider


Sujet :

Sécurité Java

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 46
    Points
    46
    Par défaut [Crypto] Bouncy Castle Provider
    Bonjour, malgré avoir lu le tutorial de developpez.com et le site de BouncyCastle, je n'arrive pas à utiliser le provider.
    J'ai placé le .jar du provider correspondant à ma version du jdk dans le dossier /jre/lib/ext comme indiqué.
    J'ai aussi ajouté dans le java.security :
    security.provider.6=org.bouncycastle.jce.provider.BouncyCastleProvider

    mais j'ai toujours la meme erreur : NoSuchProviderException

    Voici un bout du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    KeyFactory keyFactory = KeyFactory.getInstance("RSA");
    			PublicKey publicKey = keyFactory.generatePublic(publicKeySpec);
    			//encrypt the RandomKey with this RSA key
    		       SecretKeySpec sKeySpecRSA = new SecretKeySpec(publicKey.getEncoded(), "RSA");
     
    		       Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding", "BC");
     
    			cipher.init(Cipher.ENCRYPT_MODE, sKeySpecRSA);
    			byte[] encryptedAESKey = cipher.doFinal(rKey.toByte());
    De plus l'import donnée sur le site de Bouncy Castle ne passe pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import org.bouncycastle.jce.provider.BouncyCastleProvider;
    Toute idée est la bienvenue

  2. #2
    Membre confirmé

    Homme Profil pro
    Indépendant
    Inscrit en
    Juin 2002
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 540
    Points : 607
    Points
    607
    Par défaut
    Tu as déclaré le provider dans ton code ? (en plus de l'import)
    Fondateur Alien6 : Prescriptive Analytics & Machine Learning Software

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    Oui oui, j'ai mis ça :

    Security.addProvider(new BouncyCastleProvider());

    Mais vu que l'import ne marche pas, il ne me trouve evidement pas le constructeur BouncyCastleProvider()

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    Bon alors, j'ai pas trouvé comment faire marcher l'import, mais en utilisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Provider[] providers = Security.getProviders();
    		for (int i= 0; i< providers.length; i++) {
    			Provider pro = providers[i];
    			if (pro.getName()== "BC")
    				bc = pro;
    			System.out.println(pro.getName());
    		}
    Je me suis rendu compte que la jvm me détécter bien le provider de Bouncy Castle (qui se nomme BC). Et ceci car je l'ai ajouté dans le fichier security.java

    Toutefois j'avais toujours la même erreur en mettant "BC" comme provider dans Cipher.getInstance. J'ai donc décidé de créer un provider bc égal au provider de bouncy Castle en le récupérant par Security.GetProviders().


    Le code devient donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    KeyFactory keyFactory = KeyFactory.getInstance("RSA");
    			PublicKey publicKey = keyFactory.generatePublic(publicKeySpec);
    			//encrypt the RandomKey with this RSA key
     
    		       Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding",bc);
     
    			cipher.init(Cipher.ENCRYPT_MODE, publicKey);
    Voila, ça aidera peut être quelqu'un d'autre

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

Discussions similaires

  1. [Bouncy castle] Envoyer un mail chiffré avec piece jointe
    Par finalevirus dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 27/04/2013, 23h34
  2. Bouncy Castle Crypto APIs
    Par forum dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 26/07/2011, 23h54
  3. Réponses: 3
    Dernier message: 11/01/2011, 13h24
  4. [JWS] Pb de certificat avec Bouncy Castle
    Par elitost dans le forum JWS
    Réponses: 5
    Dernier message: 20/10/2009, 11h11
  5. [Crypto]JCE no provider ?
    Par leiaconcept dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 01/04/2005, 04h45

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