From bcb8b943f0eeb33442a5e80e05de21f0e794431e Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 6 Dec 2024 13:03:51 +0100 Subject: [PATCH] Allow UTF-8 for otherName --- .../main/java/eu/faircode/email/EntityCertificate.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/EntityCertificate.java b/app/src/main/java/eu/faircode/email/EntityCertificate.java index 6bacb1052d..f861d0b353 100644 --- a/app/src/main/java/eu/faircode/email/EntityCertificate.java +++ b/app/src/main/java/eu/faircode/email/EntityCertificate.java @@ -198,11 +198,15 @@ public class EntityCertificate { try { ASN1InputStream decoder = new ASN1InputStream((byte[]) altName.get(1)); DLTaggedObject encoded = (DLTaggedObject) decoder.readObject(); - String othername = DERUTF8String.getInstance( + String otherName = DERUTF8String.getInstance( ((DLTaggedObject) ((DLSequence) encoded.getBaseObject()) .getObjectAt(1)).getBaseObject()).getString(); - if (Helper.EMAIL_ADDRESS.matcher(othername).matches()) - result.add(othername); + int at = otherName.indexOf('@'); + int dot = otherName.lastIndexOf('.'); + if (at >= 0 && dot > at) // UTF-8 accepted, so basic test only + result.add(otherName); + else + Log.w("Ignoring otherName=" + otherName); } catch (Throwable ex) { Log.w(ex); }