From c7f5f4d3b881b044701f35d957fe8e7ca1cf6b17 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 26 May 2020 10:29:53 +0200 Subject: [PATCH] Improved S/MIME error message --- app/src/main/java/eu/faircode/email/FragmentMessages.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 94d0aa563c..06b5dcbd88 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -5500,10 +5500,12 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. } // Check signature + boolean matching = false; Store store = signedData.getCertificates(); SignerInformationStore signerInfos = signedData.getSignerInfos(); for (SignerInformation signer : signerInfos.getSigners()) { for (Object match : store.getMatches(signer.getSID())) { + matching = true; X509CertificateHolder certHolder = (X509CertificateHolder) match; X509Certificate cert = new JcaX509CertificateConverter() .getCertificate(certHolder); @@ -5654,6 +5656,12 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. break; } + if (result == null) + args.putString("reason", matching + ? "Signature could not be verified" + : "Certificates and signatures do not match"); + + if (is != null) decodeMessage(context, is, message, args); } else {