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 :

Utiliser la clé privée d'un certificat dans un code java


Sujet :

Sécurité Java

  1. #1
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut Utiliser la clé privée d'un certificat dans un code java
    Bonjour à tous,

    On doit savoir que pour signer un fichier, il faut generer the message digest de texte claire et ensuite le crypter en utilisant la clé privé.
    Alors je possédes le certificat, la clé privée et le mot de passe de la clée privée.
    Mais je ne sais pas comment utiliser la clée privée, car c'est un fichier, pour chiffrer le texte.

    Merci beaucoup si vous pouvez m'aider.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Dans quel format est ta clef privée ? stockée dans un PKCS#12 ? Il va falloir passer par des keystores si tu travailles avec l'API standard de Java. Les bibliothèques genre BouncyCastle simplifient par contre l'utilisation de ce genre de choses si tu souhaites utiliser une bibliothèque externe. regarde du côté de la javadoc, mais ton ouverture de keystore ressemblera déjá à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    KeyStore kspkcs12 = KeyStore.getInstance("PKCS12");
    FileInputStream fis = new FileInputStream(pkcs12Location);
    kspkcs12.load(fis, pkcs12Password.toCharArray());

  3. #3
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut
    Salut,

    Ma clef privée est au format "p.12" et stockée dans un PKCS#12.
    Les bibliothèques genre BouncyCastle simplifient par contre l'utilisation de ce genre de choses
    S'il vous plais expliquez moi comment je peux resoudre ce pb en utilisant BouncyCastle.

    Merci d'avance.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ysahel Voir le message
    Salut,

    Ma clef privée est au format "p.12" et stockée dans un PKCS#12.


    S'il vous plais expliquez moi comment je peux resoudre ce pb en utilisant BouncyCastle.

    Merci d'avance.
    Utilises tu déjà cette bibliothèque ? As tu testé avec le début de code que je t'ai donné ? As tu lu la javadoc de l'API standard avec les différentes classes du bout de code ? As tu lu la javadoc de BouncyCastle ?

  5. #5
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut
    As tu testé avec le début de code que je t'ai donné ?
    A propos du bou de code que vous avez me l'envoyez, je ne peux pas l'utiliser car j'ai pas compris bien ses instructions.
    Ensuite, J'ai trouvé ce lien http://nyal.developpez.com/tutoriel/...ncycastle/?#L4 et j'ai pu comprendre un peu mais pas parfaitement.
    Enfin,
    As tu lu la javadoc de l'API standard avec les différentes classes du bout de code ?
    Non j'ai pas lu car je l'ai pas trouvé.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Ce que je t'ai donné comme code est fait avec des classes standards de java, donc qui sont documentées dans la javadoc sur le site de sun...

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 413
    Points : 19 609
    Points
    19 609
    Par défaut
    La javadoc de BouncyCastle est presque vide tout commentaire. Il vaut mieux soit acheter le bouquin de David Hook "Begininng Cryptography with Java" soit regarder directement les exemples de codes fournis avec l'API (et y en a vraiment beaucoup d'utiles)

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Marco46 Voir le message
    La javadoc de BouncyCastle est presque vide tout commentaire. Il vaut mieux soit acheter le bouquin de David Hook "Begininng Cryptography with Java" soit regarder directement les exemples de codes fournis avec l'API (et y en a vraiment beaucoup d'utiles)
    Merci pour le renseignement. Il est vrai que j'ai peu d'expérience avec cette bibliothèque.

    Ceci dit la javadoc de Java est plutôt bien documentée et permet de comprendre mon petit bout de code ci dessus

  9. #9
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut
    Voila le code que je l'ai appliqué mais pas de résultat, plutôt il me donne une listes d'erreurs:
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    public class Chiffrement
    {
    	// CHARGEMENT DU FICHIER PKCS#12 
     
    		Keystore ks = null;
    		char[] password = null;
     
    		Security.addProvider(new BouncyCastleProvider());
    		try 
    		{
    			ks = KeyStore.getInstance("PKCS12");
    			//Password pour le fichier privkey.p12
    			password = "123456".toCharArray();
    			ks.load(new FileInputStream("privkey.p12"), password);
    		} 
    		catch (Exception e) 
    		{
    			System.out.println("Erreur: privkey.p12" + " n'est pas un fichier pkcs#12 valide ou passphrase incorrect");
    			return ;
    		}	
     
    	// RECUPERATION DE LA CLÉ PRIVEE
    	PrivateKey privatekey = null;
     
    	try
    	{
    		Enumeration en = ks.aliases();
    		String ALIAS = "";
    		Vector vectaliases = new Vector();
     
    		while (en.hasMoreElements())
    			vectaliases.add(en.nextElement());
    		String[] aliases = (String []) (vectaliases.toArray(new String[0]));
    		for (int i = 0; i < aliases.length; i++)
    			if (ks.isKeyEntry(aliases[i]))
    			{
    				ALIAS = aliases[i];
    				break;
    			}
    		privatekey = (PrivateKey)ks.getKey(ALIAS, password);
    	} 
    	catch (Exception e) 
    	{
    		e.printStackTrace();
    		return ;
    	}
    }
    J'espère bien que vous pouvez m'aider.
    Merci d'avance.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ysahel Voir le message
    Voila le code que je l'ai appliqué mais pas de résultat, plutôt il me donne une listes d'erreurs:
    Qui sont ?

  11. #11
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut
    Des dizaines d'erreurs.
    Par exemple pour la ligne de code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Security.addProvider(new BouncyCastleProvider());
    voici ses erreurs:
    ')' expected
    ';' expected
    <identifier> expected
    <identifier> expected
    illegal start of type
    illegal start of type
    En fait, la mm pour les autres lignes du code, cad chaque ligne lui correspond plusieurs erreurs.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bon alors tu espères sincérement que l'on peut t'aider avec ces informations ? Ta ligne seule est correcte, mais je subodore qu'elle est dans le corps d'une classe et pas d'une méthode. Ce qui semble être le cas vu le code donné ci dessus...
    Ces problèmes sont des problèmes de base et de syntaxe en Java, rien à voir avec la crypto.
    Ceci dit, quelle méthode essayes tu ? Je t'ai donné un code ne nécessitant pas BouncyCastle donc j'en conclus que tu n'essaies pas ce que je t'ai donné, ou alors si tu veux le tester, ça ne sert à rien d'enregistrer ce provider.
    Replonge toi dans les bases du langage si tu ne maîtrises pas...

  13. #13
    Expert éminent sénior
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 413
    Points : 19 609
    Points
    19 609
    Par défaut
    Et en + tu ajoutes BC dans les providers de la JCE mais tu ne l'utilises pas !

    Quand tu ajoutes un provider comme ça il va se positionner en dernier dans la liste. Donc soit tu le repositionnes en 1er, soit tu indiques explicitement à tes fonctions que tu l'utilises :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ks = KeyStore.getInstance("PKCS12", "BC");
    Sinon, comme le disait George7, tu code directement dans le corps de ta classe. Franchement ...
    Commence par des tutos sur java parce que là tu perds ton temps. Désolé.

Discussions similaires

  1. Utilisation des choix d'une liste déroulante dans un code VBA
    Par mrshoother dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2013, 22h20
  2. Utiliser un code MATLAB dans du code Java
    Par si_a7med dans le forum MATLAB
    Réponses: 1
    Dernier message: 23/04/2011, 16h30
  3. utiliser le langage latex dans mon code java
    Par guim2708 dans le forum Général Java
    Réponses: 0
    Dernier message: 27/05/2009, 22h08
  4. Comment savoir la table SQL utilisée dans un code JAVA ou JSP
    Par soror dans le forum Persistance des données
    Réponses: 6
    Dernier message: 03/08/2007, 11h27
  5. Réponses: 19
    Dernier message: 04/10/2006, 16h53

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