Bonjour ,
Je débute en Java et je dois ecrire un code devant envoyé un mail (avec pièce jointe) chiffré avec la clé publique du destinataire (contenu dans son certificat X509).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
InputStream ContenuCertif  = new FileInputStream("certificat.der");
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate)cf.generateCertificate(ContenuCertif);
J'ai trouvé la librairie Bouncy Castle qui fournit des classe comme Cms EnveloppedDataGenerator qui permettent de générer une clé secrète qui va chiffrée le mail et ensuite chiffrer là clé secrète avec la clé publique du destinataire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
CMSEnvelopedDataGenerator genCMS = new CMSEnvelopedDataGenerator();
// La clé publique de ce certificat servira à chiffrer la clé symétrique
genCMS.addKeyTransRecipient((X509Certificate)cert);
 
// Choix de l'algorithme à clé symétrique pour chiffrer le document.
String algorithm = CMSEnvelopedDataGenerator.DES_EDE3_CBC;
CMSEnvelopedData envData = genCMS.generate(
                                        new CMSProcessableByteArray(buffer),
                                        algorithm, "BC");
J'ai aussi trouvé Java mail qui permet d'envoyer des mail avec pièce jointe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
DataSource source = new FileDataSource("fichierAEnvoyer"); 
DataHandler piecejointe=new DataHandler(source);
partieavecPieceJointe.setDataHandler(piecejointe);
mais je n'arrive pas à coder l'envoi d'un mail chiffré ...