diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2016-05-17 20:59:07 +0200 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2016-05-17 20:59:07 +0200 |
commit | 1da8e4c1edd71b2ddbe95a58060c1be20bd13dd7 (patch) | |
tree | 884eed850d90f3f17af26a1b49a20b2e9a4e3102 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations | |
parent | f833b0f2ef206f9dc2656628bca460fd2a8ab54b (diff) | |
download | open-keychain-1da8e4c1edd71b2ddbe95a58060c1be20bd13dd7.tar.gz open-keychain-1da8e4c1edd71b2ddbe95a58060c1be20bd13dd7.tar.bz2 open-keychain-1da8e4c1edd71b2ddbe95a58060c1be20bd13dd7.zip |
make unencrypted backup an explicit parameter
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java index 0ea7e7e59..21c519925 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java @@ -20,7 +20,6 @@ package org.sufficientlysecure.keychain.operations; import java.io.BufferedOutputStream; -import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.FileNotFoundException; import java.io.IOException; @@ -113,23 +112,25 @@ public class BackupOperation extends BaseOperation<BackupKeyringParcel> { log.add(LogType.MSG_BACKUP_ALL, 0); } - try { - - boolean nonEncryptedOutput = cryptoInput == null; + if (backupInput.mIsEncrypted && cryptoInput == null) { + throw new IllegalStateException("Encrypted backup must supply cryptoInput parameter"); + } + try { Uri plainUri = null; OutputStream plainOut; - if (nonEncryptedOutput && backupInput.mOutputUri == null) { - plainOut = outputStream; - } else if (nonEncryptedOutput) { - plainOut = mContext.getContentResolver().openOutputStream(backupInput.mOutputUri); - } else { + if (backupInput.mIsEncrypted) { plainUri = TemporaryFileProvider.createFile(mContext); plainOut = mContext.getContentResolver().openOutputStream(plainUri); + } else { + if (backupInput.mOutputUri == null) { + throw new IllegalArgumentException("Unencrypted export to output stream is not supported!"); + } else { + plainOut = mContext.getContentResolver().openOutputStream(backupInput.mOutputUri); + } } int exportedDataSize; - { // export key data, and possibly return if we don't encrypt DataOutputStream outStream = new DataOutputStream(new BufferedOutputStream(plainOut)); |