[Bouncy castle] Envoyer un mail chiffré avec piece jointe
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:
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:
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:
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é ...