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 :

Des changements dans SunJCE ?


Sujet :

Sécurité Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Par défaut Des changements dans SunJCE ?
    Bonjour,

    C'est étrange mais j'utilisais pour la crypto ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cipher cipher = Cipher.getInstance("RSA", "SunJCE");
    ce qui fonctionnait parfaitement.
    Par contre, depuis peu (je ne sais pas quand), cela produit une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    no such algorithm: RSA for provider SunJCE
    Donc j'ai changé en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cipher cipher = Cipher.getInstance("RSA");
    ce qui marche parfaitement...

    Du coup je me demande :
    1) pourquoi j'avais mis "SunJCE" (je pense que c'est parce que ça ne fonctionnait pas sans ça)
    2) pourquoi ça ne marche plus (j'imagine que c'est parce qu'Oracle veut faire disparaître "Sun" de partout, mais où est l'info ?)
    3) si du coup ça fonctionne à présent aussi avec OpenJDK (ce qui n'était pas le cas)

    Je précise que je suis toujours sous 1.6

    Je pense que je peux trouver tout seul la réponse à 3 (mais bon, ça va prendre du temps), mais apparemment il me manque des sources d'info pour 1) et 2).

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Cryptographic implementations in the Sun JDK are distributed via several different providers (Sun, SunJSSE, SunJCE, SunRsaSign) primarily for historical reasons, but to a lesser extent by the type of functionality and algorithms they provide. Other Java runtime environments may not necessarily contain these Sun providers, so applications should not request an provider-specific implementation unless it is known that a particular provider will be available.

    Cf http://download.oracle.com/javase/6/...l#Architecture

  3. #3
    Membre émérite Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Par défaut
    applications should not request an provider-specific implementation
    "should" ... Après, chacun fait ce qu'il veut, mmh ?

    En plus, ça n'explique pas le changement de comportement... Ca ne répond ni à 1, ni à 2, ni à 3 quoi ...

    Bon, ok, pour 1, il n'y a que moi qui peut répondre...

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah, Sun n'existe plus, donc oracle a dû changer de nom de provider dans un des builds...

    Comme la liste des providers ne fait pas partie de la spécification, ils peuvent faire un peu ce qu'ils veulent dessus (même si ce n'est pas franchement malin)...

    A toi de voir par quel provider ils l'ont remplacé (de souvenir il y a moyen de récupérer la liste des providers disponibles)

  5. #5
    Membre émérite Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Par défaut
    Mmmh, mes questions ne sont peut-être pas claires. Le fond c'est "mais où diable est documenté ce changement ?" ...

  6. #6
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah, reste à voir s'ils l'ont vraiment supprimé, en l'occurence, quand je liste les providers dispo sur mon installation de java (1.6.0_26-b03 - Windows), SunJCE est toujours listé en tant que provider...

    Et la ligne qui te sort une exception fonctionne chez moi.

  7. #7
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Citation Envoyé par sinok Voir le message
    Bah, Sun n'existe plus, donc oracle a dû changer de nom de provider dans un des builds...

    Comme la liste des providers ne fait pas partie de la spécification, ils peuvent faire un peu ce qu'ils veulent dessus (même si ce n'est pas franchement malin)...

    A toi de voir par quel provider ils l'ont remplacé (de souvenir il y a moyen de récupérer la liste des providers disponibles)
    Je suis pas sûr que ce soit ça. Le message d'erreur lui dit qu'il n'y a pas d'implémentation pour l'algorithme RSA pour le provider SunJCE, pas que le provider SunJCE n'existe pas.

    J'ai cherché dans la documentation et j'ai pas trouvé de mention comme quoi les provider auraient été modifiés. Je suis pas non plus aller lire les logs des différentes updates.

    Chez moi j'ai java en version 1.6.0_26-b3.

    L'exécution de la procédure ci-dessous m'indique que l'algorithme RSA est bien présent pour SunJCE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
     
    /**
     * Liste uniquement les Algorithmes (et pas tous les services) disponibles 
     * pour le provider de nom p_sNomProvider. 
     * 
     * @param p_sNomProvider
     */
    static public void listerAlgorithmes(String p_sNomProvider){
     
    	Provider prov = null;
     
    	Provider[] providers = Security.getProviders();
    	Service serv = null;
     
    	for (int i= 0; i< providers.length; i++) {
     
    		if(providers[i].getName().equals(p_sNomProvider)) {
    			prov = providers[i];
    			break;
    		}
    	}
     
    	if(p_sNomProvider.equals("BC")) {
     
    		prov = new BouncyCastleProvider();
    	}
     
    	Iterator<Service> it = prov.getServices().iterator();
    	while(it.hasNext()) {
     
    		serv = it.next();
    		System.out.println(serv.getAlgorithm());
    	}
     
    }
    Sinon je +1 avec le premier message de Sinok, normalement on n'indique pas le provider à utiliser, on va modifier le fichier java.security comme indiqué ici.

    Donc si BenWillard pouvait exécuter cette procédure on pourra peut être y voir plus clair

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/11/2009, 11h45
  2. Gestion des changements dans une BDD en étoile
    Par _skip dans le forum Conception/Modélisation
    Réponses: 5
    Dernier message: 24/08/2008, 10h34
  3. Réponses: 3
    Dernier message: 09/11/2007, 14h23
  4. Réponses: 5
    Dernier message: 13/07/2006, 16h05
  5. Y a-t-il eu des changements dans les rangs du forum ?
    Par pepper18 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 12/06/2006, 15h52

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