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 :

Bouncy Castle - SMIMESignedParser - Désencapsulation du contenu signé d'un mail -


Sujet :

Sécurité Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 14
    Points
    14
    Par défaut Bouncy Castle - SMIMESignedParser - Désencapsulation du contenu signé d'un mail -
    Bonjour à tous,

    Je suis actuellement en train de développer un traitement d'envoi/Réception de mail signé/Chiffré par SSL.
    J'utilise l'API Bouncy Caste qui, cela dit en passant est plutôt bien complète.


    Dans ma partie de réception de message, je dois archiver des mails signé/chiffré d'une boite mail (Protocole IMAP) et extraire les pièces jointes éventuelle.

    Pour cela, j'ouvre le mail signé (préalablement exporté au format eml)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String nomFic = 'monMessage.eml';
    MimeMessage mess = new MimeMessage(mailSession,
    					new FileInputStream(nomFic));
    je vérifie s'il est signé et ou s'il contient une pièce jointe

    Si le mail est signé, je dois désencapsuler le contenu signé du message pour pouvoir accéder aux éventuelles pièces jointes.

    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
     
     
    // Il y a des pieces jointes
    if (mimeType.indexOf("multipart") > -1) {
     
    MimeMultipart mp = (MimeMultipart) mess.getContent();
     
    // on vérifie si le mail est signé.
    	if (mimeType.indexOf("signed") > -1) 
    {
     
    SMIMESignedParser sParser = new SMIMESignedParser((MimeMultipart) mess.getContent());
    mp = (MimeMultipart) sParser.getContentWithSignature();
     
    }
     
    // extraction des pièces jointes
     
    int nbrPj = mp.getCount(); // Nombre de PJ
     
    for (int j = 0; j < nbrPj; j++) {
     
    	MimeBodyPart part = (MimeBodyPart) mp.getBodyPart(j);
     
    	String disposition = part.getDisposition();
     
    	if ((disposition != null)
    			&& ((disposition.equals(Part.ATTACHMENT) || (disposition
    					.equals(Part.INLINE))))) {
    		File save = new File("C:\\XXX\\OUTPUT_PJ\\"
    				+ part.getFileName());
    		FileWriter ecriture = new FileWriter(save);
    		InputStreamReader lecture = new InputStreamReader(part
    				.getInputStream());
    		int flux;
    		while ((flux = lecture.read()) != -1) {
    			ecriture.write(flux);
    		}
    		lecture.close();
    		ecriture.close();
    	}
     
    }
     
    }
    PS : Désolé pour l'indentation un peu foireuse mais ca marche pas...

    Mon problème est que justement je ne capte pas comment désencapsuler ce contenu signé.
    Si je ne le fais pas, mon extraction de pièce jointe extrait le clé public *.p7s et zappe du coup ma vrai pièce jointe.

    J'en appelle à votre aide légendaire pour me sortir de la panade...

    Merci d'avance

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    Bon ben j'ai trouvé la réponse...

    Pour info :


    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
     
     
    MimeBodyPart mbpSigneeMessage = null; // partie signée du message
    MimeMultipart mp = null; // partie signée du message
     
    // on vérifie si le mail est signé.
    if (mimeType.indexOf("signed") > -1) {
     
    // Desencapsulation de la partie signée du message
               SMIMESignedParser sParser = new SMIMESignedParser(
    							(MimeMultipart)   mess.getContent());
     
                mbpSigneeMessage = sParser.getContent();
     
                mp = (MimeMultipart) mbpSigneeMessage.getContent();
    }
    Parcourir ensuite tous les MimeBodypart de l'objet 'mp'

+ 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. [JWS] Pb de certificat avec Bouncy Castle
    Par elitost dans le forum JWS
    Réponses: 5
    Dernier message: 20/10/2009, 11h11
  3. [Bouncy Castle] Taille des clefs générées avec ECDSA
    Par nedned dans le forum Sécurité
    Réponses: 1
    Dernier message: 26/06/2008, 15h49
  4. Exemple JavaMail / Bouncy Castle
    Par jproto dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 04/06/2008, 11h27
  5. [Crypto] Bouncy Castle Provider
    Par mush_H dans le forum Sécurité
    Réponses: 3
    Dernier message: 09/01/2005, 10h38

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