From 35436c8ee70069f5f239fcf1ec5e4b562aa6eeac Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 8 Sep 2021 08:12:17 +0200 Subject: [PATCH] Simplified algorithms names --- .../java/eu/faircode/email/ApplicationEx.java | 3 +++ .../eu/faircode/email/FragmentCompose.java | 20 +++++++------------ .../email/FragmentOptionsEncryption.java | 4 ++-- app/src/main/res/values/strings.xml | 18 +++++++++-------- 4 files changed, 22 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ApplicationEx.java b/app/src/main/java/eu/faircode/email/ApplicationEx.java index 3f7b57b4d6..5ab86b0b9f 100644 --- a/app/src/main/java/eu/faircode/email/ApplicationEx.java +++ b/app/src/main/java/eu/faircode/email/ApplicationEx.java @@ -516,6 +516,9 @@ public class ApplicationEx extends Application if (!prefs.contains("landscape3")) editor.putBoolean("landscape3", false); } + } else if (version < 17150) { + editor.remove("sign_algo_smime"); + editor.remove("encrypt_algo_smime"); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !BuildConfig.DEBUG) diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 7086f6b0c1..5854b7e05f 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -3434,12 +3434,7 @@ public class FragmentCompose extends FragmentBase { CMSSignedDataGenerator cmsGenerator = new CMSSignedDataGenerator(); cmsGenerator.addCertificates(store); - String signAlgorithm = prefs.getString("sign_algo_smime", "SHA256"); - - // https://datatracker.ietf.org/doc/html/rfc5751#page-29 - String micalg = signAlgorithm.toLowerCase(Locale.ROOT); - if (micalg.startsWith("sha")) - micalg = micalg.substring(0, 3) + "-" + micalg.substring(3); + String signAlgorithm = prefs.getString("sign_algo_smime", "SHA-256"); String algorithm = privkey.getAlgorithm(); if (TextUtils.isEmpty(algorithm) || "RSA".equals(algorithm)) @@ -3477,7 +3472,7 @@ public class FragmentCompose extends FragmentBase { // Build signature if (EntityMessage.SMIME_SIGNONLY.equals(type)) { ContentType ct = new ContentType("application/pkcs7-signature"); - ct.setParameter("micalg", micalg); + ct.setParameter("micalg", signAlgorithm.toLowerCase(Locale.ROOT)); EntityAttachment sattachment = new EntityAttachment(); sattachment.message = draft.id; @@ -3550,7 +3545,7 @@ public class FragmentCompose extends FragmentBase { // Build message ContentType ct = new ContentType("multipart/signed"); - ct.setParameter("micalg", micalg); + ct.setParameter("micalg", signAlgorithm.toLowerCase(Locale.ROOT)); ct.setParameter("protocol", "application/pkcs7-signature"); ct.setParameter("smime-type", "signed-data"); String ctx = ct.toString(); @@ -3587,17 +3582,16 @@ public class FragmentCompose extends FragmentBase { } CMSTypedData msg = new CMSProcessableFile(einput); - // https://datatracker.ietf.org/doc/html/rfc5751#section-2.7 ASN1ObjectIdentifier encryptionOID; - String encryptAlgorithm = prefs.getString("encrypt_algo_smime", "AES128"); + String encryptAlgorithm = prefs.getString("encrypt_algo_smime", "AES-128"); switch (encryptAlgorithm) { - case "AES128": + case "AES-128": encryptionOID = CMSAlgorithm.AES128_CBC; break; - case "AES192": + case "AES-192": encryptionOID = CMSAlgorithm.AES192_CBC; break; - case "AES256": + case "AES-256": encryptionOID = CMSAlgorithm.AES256_CBC; break; default: diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsEncryption.java b/app/src/main/java/eu/faircode/email/FragmentOptionsEncryption.java index 43dcd9eeab..965147c7fe 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsEncryption.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsEncryption.java @@ -471,7 +471,7 @@ public class FragmentOptionsEncryption extends FragmentBase implements SharedPre swAutocryptMutual.setEnabled(swAutocrypt.isChecked()); swEncryptSubject.setChecked(prefs.getBoolean("encrypt_subject", false)); - String signAlgorithm = prefs.getString("sign_algo_smime", "SHA256"); + String signAlgorithm = prefs.getString("sign_algo_smime", "SHA-256"); String[] smimeSignAlgo = getResources().getStringArray(R.array.smimeSignAlgo); for (int pos = 0; pos < smimeSignAlgo.length; pos++) if (smimeSignAlgo[pos].equals(signAlgorithm)) { @@ -479,7 +479,7 @@ public class FragmentOptionsEncryption extends FragmentBase implements SharedPre break; } - String encryptAlgorithm = prefs.getString("encrypt_algo_smime", "AES128"); + String encryptAlgorithm = prefs.getString("encrypt_algo_smime", "AES-128"); String[] smimeEncryptAlgo = getResources().getStringArray(R.array.smimeEncryptAlgo); for (int pos = 0; pos < smimeEncryptAlgo.length; pos++) if (smimeEncryptAlgo[pos].equals(encryptAlgorithm)) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b758a4a72a..5bff6ccf41 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2023,19 +2023,21 @@ + MD5 - SHA1 - SHA224 - SHA256 - SHA384 - SHA512 + SHA-1 + SHA-224 + SHA-256 + SHA-384 + SHA-512 + - AES128 - AES192 - AES256 + AES-128 + AES-192 + AES-256 17BA15C1AF55D925F98B99CEA4375D4CDF4C174B