aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java
diff options
context:
space:
mode:
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java21
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));