From e4aca7a432cf1fdab44f1b831a94c7d95bd12d31 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 8 Nov 2023 08:43:16 +0100 Subject: [PATCH] Attempt to workaround Android 7.0 cipher problem --- app/src/main/java/eu/faircode/email/EmailService.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/EmailService.java b/app/src/main/java/eu/faircode/email/EmailService.java index 3dd953ad4e..b1c3911a9c 100644 --- a/app/src/main/java/eu/faircode/email/EmailService.java +++ b/app/src/main/java/eu/faircode/email/EmailService.java @@ -1290,6 +1290,17 @@ public class EmailService implements AutoCloseable { sslSocket.setEnabledCipherSuites(ciphers.toArray(new String[0])); } + // https://issuetracker.google.com/issues/37122132 + // https://stackoverflow.com/questions/39133437/sslhandshakeexception-handshake-failed-on-android-n-7-0 + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.N) { + List ciphers = new ArrayList<>(); + for (String cipher : sslSocket.getEnabledCipherSuites()) + if (cipher != null && !cipher.endsWith("SHA384")) + ciphers.add(cipher); + if (ciphers.size() > 0) + sslSocket.setEnabledCipherSuites(ciphers.toArray(new String[0])); + } + Log.i("SSL protocols=" + TextUtils.join(",", sslSocket.getEnabledProtocols())); Log.i("SSL ciphers=" + TextUtils.join(",", sslSocket.getEnabledCipherSuites())); }