aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2016-05-17 20:59:07 +0200
committerVincent Breitmoser <valodim@mugenguild.com>2016-05-17 20:59:07 +0200
commit1da8e4c1edd71b2ddbe95a58060c1be20bd13dd7 (patch)
tree884eed850d90f3f17af26a1b49a20b2e9a4e3102 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations
parentf833b0f2ef206f9dc2656628bca460fd2a8ab54b (diff)
downloadopen-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.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));