0

J'ai besoin d'aide avec cette lib. Récupérer les exemples suivants code BouncyCastle et je ne comprends pas comment cela fonctionne. Mon code: http://pastebin.com/RieDfUd9 Dictionnaire: chaîne [0], est le sender cert. conv, est le cert du récepteur.Bouncycastle: crypter avec une clé publique

Mon problème est le suivant, j'ai besoin de crypter un e-mail en utilisant le smime avec le personnel de la clé publique que j'envoie l'e-mail. En ce moment dans mon environnement de test, j'ai accès aux deux certificats. Mais dans un environnement de production, je n'aurai accès qu'à mon certificat (qui envoie) la chaîne [0], et à la clé publique de ceux qui la reçoivent. J'ai besoin d'un email encryptar pour que je puisse ouvrir avec la clé publique de qui lit (et qui a été utilisé pour crypter le message).

J'ai déjà essayé plusieurs façons, mais j'ai toujours des problèmes lors du décryptage.

Répondre

0

Vous ne pouvez pas faire cela. Vous devrez stocker le CERT au lieu de simplement les clés publiques. Lorsqu'un client de messagerie reçoit un courrier électronique, il doit savoir quelle clé privée utiliser pour le déchiffrer, sinon il échouera à décrypter.

Comment le client de messagerie sait-il quelle clé privée utiliser? Parce que les informations de destinataire sont également dans le courrier chiffré.

Vous ne pouvez pas simplement chiffrer votre clé de chiffrement de données avec n'importe quelle clé publique aléatoire et espérer que le destinataire sache quelle clé peut être utilisée pour la déchiffrer. C'est pourquoi l'API BouncyCastle prend un certificat au lieu d'une clé.

Vous pouvez lire plus sur les détails de chiffrement SMIME ici: https://security.stackexchange.com/questions/45222/smime-email-decryption-key-with-openssl

Ce lien a plus sur la façon dont le processus de décryptage est fait pour plusieurs destinataires: SMIME decryption for multiple recipients

+0

Merci! Je vais changer mon approche! –

+0

TY pour la réponse à nouveau. J'ai été capable de faire exactement ce que je voulais en utilisant le château gonflable. Dès que j'aurai fini mon travail, je posterai mon code dans GitHub. –