From 28bf1a37a144caa7d4f05b7a6dc7f8557d816886 Mon Sep 17 00:00:00 2001 From: Hari Date: Sun, 29 Jan 2017 22:14:54 +0530 Subject: [PATCH] Added ascii armor option to the backup api --- .../keychain/operations/BackupOperation.java | 2 +- .../keychain/remote/OpenPgpService.java | 3 ++- .../keychain/service/BackupKeyringParcel.java | 8 +++++--- .../keychain/ui/BackupCodeFragment.java | 2 +- .../operations/BackupOperationTest.java | 20 +++++++++---------- 5 files changed, 19 insertions(+), 16 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 d46d8a25f..0895e5251 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java @@ -174,7 +174,7 @@ public class BackupOperation extends BaseOperation { PgpSignEncryptData data = new PgpSignEncryptData(); data.setSymmetricPassphrase(cryptoInput.getPassphrase()); - data.setEnableAsciiArmorOutput(true); + data.setEnableAsciiArmorOutput(backupInput.mEnableAsciiArmorOutput); data.setAddBackupHeader(true); PgpSignEncryptInputParcel inputParcel = new PgpSignEncryptInputParcel(data); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java index cb7cb1c06..aa5797d91 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java @@ -615,6 +615,7 @@ public class OpenPgpService extends Service { try { long[] masterKeyIds = data.getLongArrayExtra(OpenPgpApi.EXTRA_KEY_IDS); boolean backupSecret = data.getBooleanExtra(OpenPgpApi.EXTRA_BACKUP_SECRET, false); + boolean enableAsciiArmorOutput = data.getBooleanExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true); CryptoInputParcel inputParcel = CryptoInputParcelCacheService.getCryptoInputParcel(this, data); if (inputParcel == null) { @@ -626,7 +627,7 @@ public class OpenPgpService extends Service { // after user interaction with RemoteBackupActivity, // the backup code is cached in CryptoInputParcelCacheService, now we can proceed - BackupKeyringParcel input = new BackupKeyringParcel(masterKeyIds, backupSecret, true, null); + BackupKeyringParcel input = new BackupKeyringParcel(masterKeyIds, backupSecret, true, enableAsciiArmorOutput, null); BackupOperation op = new BackupOperation(this, mProviderHelper, null); ExportResult pgpResult = op.execute(input, inputParcel, outputStream); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/BackupKeyringParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/BackupKeyringParcel.java index 48ea4196b..b0d98ee33 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/BackupKeyringParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/BackupKeyringParcel.java @@ -23,22 +23,22 @@ import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; -import org.sufficientlysecure.keychain.util.Passphrase; - public class BackupKeyringParcel implements Parcelable { public Uri mCanonicalizedPublicKeyringUri; public final boolean mExportSecret; public final boolean mIsEncrypted; + public final boolean mEnableAsciiArmorOutput; public final long mMasterKeyIds[]; public final Uri mOutputUri; - public BackupKeyringParcel(long[] masterKeyIds, boolean exportSecret, boolean isEncrypted, Uri outputUri) { + public BackupKeyringParcel(long[] masterKeyIds, boolean exportSecret, boolean isEncrypted, boolean enableAsciiArmorOutput, Uri outputUri) { mMasterKeyIds = masterKeyIds; mExportSecret = exportSecret; mOutputUri = outputUri; mIsEncrypted = isEncrypted; + mEnableAsciiArmorOutput = enableAsciiArmorOutput; } protected BackupKeyringParcel(Parcel in) { @@ -47,6 +47,7 @@ public class BackupKeyringParcel implements Parcelable { mOutputUri = (Uri) in.readValue(Uri.class.getClassLoader()); mMasterKeyIds = in.createLongArray(); mIsEncrypted = in.readInt() != 0; + mEnableAsciiArmorOutput = in.readInt() != 0; } @Override @@ -61,6 +62,7 @@ public class BackupKeyringParcel implements Parcelable { dest.writeValue(mOutputUri); dest.writeLongArray(mMasterKeyIds); dest.writeInt(mIsEncrypted ? 1 : 0); + dest.writeInt(mEnableAsciiArmorOutput ? 1 : 0); } public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupCodeFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupCodeFragment.java index 05fcaf3e0..84e130d92 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupCodeFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupCodeFragment.java @@ -605,7 +605,7 @@ public class BackupCodeFragment extends CryptoOperationFragment