From 2ac88404583183c6169e3d8f9f4c9279d6709362 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 11 Sep 2020 09:24:56 +0200 Subject: [PATCH] Prevent double including own S/MIME cert --- app/src/main/java/eu/faircode/email/FragmentCompose.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 9f56c1d4e0..cb0cbae39f 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -2704,8 +2704,8 @@ public class FragmentCompose extends FragmentBase { addresses.addAll(Arrays.asList(draft.bcc)); List certs = new ArrayList<>(); - certs.add(chain[0]); // Allow sender to decrypt own message + boolean own = true; for (Address address : addresses) { boolean found = false; Throwable cex = null; @@ -2718,6 +2718,8 @@ public class FragmentCompose extends FragmentBase { cert.checkValidity(); certs.add(cert); found = true; + if (cert.equals(chain[0])) + own = false; } catch (CertificateException ex) { Log.w(ex); cex = ex; @@ -2733,6 +2735,10 @@ public class FragmentCompose extends FragmentBase { context.getString(R.string.title_certificate_invalid, email), cex); } + // Allow sender to decrypt own message + if (own) + certs.add(chain[0]); + // Build signature BodyPart bpSignature = new MimeBodyPart(); bpSignature.setFileName("smime.p7s");