From 1b45c333933f9e847439adfa6220ee4cb88ea7b9 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Fri, 13 Sep 2019 21:18:26 +0200 Subject: catch empty password exceptions in ExportBackupService --- .../java/de/pixart/messenger/services/ExportBackupService.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/pixart/messenger/services/ExportBackupService.java b/src/main/java/de/pixart/messenger/services/ExportBackupService.java index 8d4cd4f2d..96ec4c6cd 100644 --- a/src/main/java/de/pixart/messenger/services/ExportBackupService.java +++ b/src/main/java/de/pixart/messenger/services/ExportBackupService.java @@ -257,7 +257,7 @@ public class ExportBackupService extends Service { List files; try { files = export(); - success = true; + success = files != null; } catch (Exception e) { success = false; files = Collections.emptyList(); @@ -325,6 +325,10 @@ public class ExportBackupService extends Service { final SecureRandom secureRandom = new SecureRandom(); final List files = new ArrayList<>(); for (Account account : this.mAccounts) { + final String password = account.getPassword(); + if (password.isEmpty() || password.equals("")) { + return null; + } final byte[] IV = new byte[12]; final byte[] salt = new byte[16]; secureRandom.nextBytes(IV); @@ -342,7 +346,7 @@ public class ExportBackupService extends Service { dataOutputStream.flush(); final Cipher cipher = Compatibility.twentyEight() ? Cipher.getInstance(CIPHERMODE) : Cipher.getInstance(CIPHERMODE, PROVIDER); - byte[] key = getKey(account.getPassword(), salt); + byte[] key = getKey(password, salt); Log.d(Config.LOGTAG, backupFileHeader.toString()); SecretKeySpec keySpec = new SecretKeySpec(key, KEYTYPE); IvParameterSpec ivSpec = new IvParameterSpec(IV); -- cgit v1.2.3