allowed operations to modify CryptoInputParcel they receive
This commit is contained in:
@@ -103,7 +103,10 @@ public class CertifyOperation extends BaseOperation<CertifyActionsParcel> {
|
||||
if (passphrase == null) {
|
||||
return new CertifyResult(log,
|
||||
RequiredInputParcel.createRequiredSignPassphrase(
|
||||
certificationKey.getKeyId(), certificationKey.getKeyId(), null)
|
||||
certificationKey.getKeyId(),
|
||||
certificationKey.getKeyId(),
|
||||
null),
|
||||
cryptoInput
|
||||
);
|
||||
}
|
||||
break;
|
||||
@@ -189,7 +192,7 @@ public class CertifyOperation extends BaseOperation<CertifyActionsParcel> {
|
||||
|
||||
if (!allRequiredInput.isEmpty()) {
|
||||
log.add(LogType.MSG_CRT_NFC_RETURN, 1);
|
||||
return new CertifyResult(log, allRequiredInput.build());
|
||||
return new CertifyResult(log, allRequiredInput.build(), cryptoInput);
|
||||
}
|
||||
|
||||
log.add(LogType.MSG_CRT_SAVING, 1);
|
||||
@@ -211,7 +214,7 @@ public class CertifyOperation extends BaseOperation<CertifyActionsParcel> {
|
||||
// explicit proxy not set
|
||||
if (!OrbotHelper.isOrbotInRequiredState(mContext)) {
|
||||
return new CertifyResult(null,
|
||||
RequiredInputParcel.createOrbotRequiredOperation());
|
||||
RequiredInputParcel.createOrbotRequiredOperation(), cryptoInput);
|
||||
}
|
||||
proxy = Preferences.getPreferences(mContext).getProxyPrefs()
|
||||
.parcelableProxy.getProxy();
|
||||
|
||||
@@ -130,18 +130,6 @@ public class ExportOperation extends BaseOperation<ExportKeyringParcel> {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* returns null if no user input required for upload, an InputPendingResult otherwise
|
||||
*/
|
||||
@Nullable
|
||||
public InputPendingResult getUploadPendingInput() {
|
||||
if (!OrbotHelper.isOrbotInRequiredState(mContext)) {
|
||||
return new ExportResult(null,
|
||||
RequiredInputParcel.createOrbotRequiredOperation());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public ExportResult exportToFile(long[] masterKeyIds, boolean exportSecret, String outputFile) {
|
||||
|
||||
OperationLog log = new OperationLog();
|
||||
@@ -355,7 +343,7 @@ public class ExportOperation extends BaseOperation<ExportKeyringParcel> {
|
||||
// explicit proxy not set
|
||||
if (!OrbotHelper.isOrbotInRequiredState(mContext)) {
|
||||
return new ExportResult(null,
|
||||
RequiredInputParcel.createOrbotRequiredOperation());
|
||||
RequiredInputParcel.createOrbotRequiredOperation(), cryptoInput);
|
||||
}
|
||||
proxy = Preferences.getPreferences(mContext).getProxyPrefs()
|
||||
.parcelableProxy.getProxy();
|
||||
|
||||
@@ -404,7 +404,7 @@ public class ImportOperation extends BaseOperation<ImportKeyringParcel> {
|
||||
if(!OrbotHelper.isOrbotInRequiredState(mContext)) {
|
||||
// show dialog to enable/install dialog
|
||||
return new ImportKeyResult(null,
|
||||
RequiredInputParcel.createOrbotRequiredOperation());
|
||||
RequiredInputParcel.createOrbotRequiredOperation(), cryptoInput);
|
||||
}
|
||||
proxy = Preferences.getPreferences(mContext).getProxyPrefs().parcelableProxy
|
||||
.getProxy();
|
||||
|
||||
@@ -69,7 +69,7 @@ public class KeybaseVerificationOperation extends BaseOperation<KeybaseVerificat
|
||||
// explicit proxy not set
|
||||
if (!OrbotHelper.isOrbotInRequiredState(mContext)) {
|
||||
return new KeybaseVerificationResult(null,
|
||||
RequiredInputParcel.createOrbotRequiredOperation());
|
||||
RequiredInputParcel.createOrbotRequiredOperation(), cryptoInput);
|
||||
}
|
||||
proxy = Preferences.getPreferences(mContext).getProxyPrefs()
|
||||
.parcelableProxy.getProxy();
|
||||
|
||||
@@ -155,7 +155,7 @@ public class SignEncryptOperation extends BaseOperation<SignEncryptParcel> {
|
||||
RequiredInputParcel requiredInput = result.getRequiredInputParcel();
|
||||
// Passphrase returns immediately, nfc are aggregated
|
||||
if (requiredInput.mType == RequiredInputType.PASSPHRASE) {
|
||||
return new SignEncryptResult(log, requiredInput, results);
|
||||
return new SignEncryptResult(log, requiredInput, results, cryptoInput);
|
||||
}
|
||||
if (pendingInputBuilder == null) {
|
||||
pendingInputBuilder = new NfcSignOperationsBuilder(requiredInput.mSignatureTime,
|
||||
@@ -173,7 +173,7 @@ public class SignEncryptOperation extends BaseOperation<SignEncryptParcel> {
|
||||
} while (!inputUris.isEmpty());
|
||||
|
||||
if (pendingInputBuilder != null && !pendingInputBuilder.isEmpty()) {
|
||||
return new SignEncryptResult(log, pendingInputBuilder.build(), results);
|
||||
return new SignEncryptResult(log, pendingInputBuilder.build(), results, cryptoInput);
|
||||
}
|
||||
|
||||
if (!outputUris.isEmpty()) {
|
||||
|
||||
@@ -23,6 +23,7 @@ import android.content.Intent;
|
||||
import android.os.Parcel;
|
||||
|
||||
import org.sufficientlysecure.keychain.R;
|
||||
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
|
||||
import org.sufficientlysecure.keychain.service.input.RequiredInputParcel;
|
||||
import org.sufficientlysecure.keychain.ui.LogDisplayActivity;
|
||||
import org.sufficientlysecure.keychain.ui.LogDisplayFragment;
|
||||
@@ -38,8 +39,9 @@ public class CertifyResult extends InputPendingResult {
|
||||
super(result, log);
|
||||
}
|
||||
|
||||
public CertifyResult(OperationLog log, RequiredInputParcel requiredInput) {
|
||||
super(log, requiredInput);
|
||||
public CertifyResult(OperationLog log, RequiredInputParcel requiredInput,
|
||||
CryptoInputParcel cryptoInputParcel) {
|
||||
super(log, requiredInput, cryptoInputParcel);
|
||||
}
|
||||
|
||||
public CertifyResult(int result, OperationLog log, int certifyOk, int certifyError, int uploadOk, int uploadError) {
|
||||
|
||||
@@ -45,8 +45,9 @@ public class DecryptVerifyResult extends InputPendingResult {
|
||||
super(result, log);
|
||||
}
|
||||
|
||||
public DecryptVerifyResult(OperationLog log, RequiredInputParcel requiredInput) {
|
||||
super(log, requiredInput);
|
||||
public DecryptVerifyResult(OperationLog log, RequiredInputParcel requiredInput,
|
||||
CryptoInputParcel cryptoInputParcel) {
|
||||
super(log, requiredInput, cryptoInputParcel);
|
||||
}
|
||||
|
||||
public DecryptVerifyResult(Parcel source) {
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.os.Parcel;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import org.sufficientlysecure.keychain.R;
|
||||
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
|
||||
import org.sufficientlysecure.keychain.service.input.RequiredInputParcel;
|
||||
import org.sufficientlysecure.keychain.ui.LogDisplayActivity;
|
||||
import org.sufficientlysecure.keychain.ui.LogDisplayFragment;
|
||||
@@ -47,8 +48,9 @@ public class DeleteResult extends InputPendingResult {
|
||||
* @param log operation log upto point of required input, if any
|
||||
* @param requiredInput represents input required
|
||||
*/
|
||||
public DeleteResult(@Nullable OperationLog log, RequiredInputParcel requiredInput) {
|
||||
super(log, requiredInput);
|
||||
public DeleteResult(@Nullable OperationLog log, RequiredInputParcel requiredInput,
|
||||
CryptoInputParcel cryptoInputParcel) {
|
||||
super(log, requiredInput, cryptoInputParcel);
|
||||
// values are not to be used
|
||||
mOk = -1;
|
||||
mFail = -1;
|
||||
|
||||
@@ -19,6 +19,7 @@ package org.sufficientlysecure.keychain.operations.results;
|
||||
|
||||
import android.os.Parcel;
|
||||
|
||||
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
|
||||
import org.sufficientlysecure.keychain.service.input.RequiredInputParcel;
|
||||
|
||||
public class ExportResult extends InputPendingResult {
|
||||
@@ -36,8 +37,9 @@ public class ExportResult extends InputPendingResult {
|
||||
}
|
||||
|
||||
|
||||
public ExportResult(OperationLog log, RequiredInputParcel requiredInputParcel) {
|
||||
super(log, requiredInputParcel);
|
||||
public ExportResult(OperationLog log, RequiredInputParcel requiredInputParcel,
|
||||
CryptoInputParcel cryptoInputParcel) {
|
||||
super(log, requiredInputParcel, cryptoInputParcel);
|
||||
// we won't use these values
|
||||
mOkPublic = -1;
|
||||
mOkSecret = -1;
|
||||
|
||||
@@ -20,6 +20,7 @@ package org.sufficientlysecure.keychain.operations.results;
|
||||
|
||||
import android.os.Parcel;
|
||||
|
||||
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
|
||||
import org.sufficientlysecure.keychain.service.input.RequiredInputParcel;
|
||||
|
||||
public class GetKeyResult extends InputPendingResult {
|
||||
@@ -38,8 +39,9 @@ public class GetKeyResult extends InputPendingResult {
|
||||
super(result, log);
|
||||
}
|
||||
|
||||
public GetKeyResult(OperationLog log, RequiredInputParcel requiredInput) {
|
||||
super(log, requiredInput);
|
||||
public GetKeyResult(OperationLog log, RequiredInputParcel requiredInput,
|
||||
CryptoInputParcel cryptoInputParcel) {
|
||||
super(log, requiredInput, cryptoInputParcel);
|
||||
}
|
||||
|
||||
public static final int RESULT_ERROR_NO_VALID_KEYS = RESULT_ERROR + 8;
|
||||
|
||||
@@ -96,8 +96,9 @@ public class ImportKeyResult extends InputPendingResult {
|
||||
mImportedMasterKeyIds = importedMasterKeyIds;
|
||||
}
|
||||
|
||||
public ImportKeyResult(OperationLog log, RequiredInputParcel requiredInputParcel) {
|
||||
super(log, requiredInputParcel);
|
||||
public ImportKeyResult(OperationLog log, RequiredInputParcel requiredInputParcel,
|
||||
CryptoInputParcel cryptoInputParcel) {
|
||||
super(log, requiredInputParcel, cryptoInputParcel);
|
||||
// just assign default values, we won't use them anyway
|
||||
mNewKeys = 0;
|
||||
mUpdatedKeys = 0;
|
||||
|
||||
@@ -32,7 +32,7 @@ public class InputPendingResult extends OperationResult {
|
||||
|
||||
final RequiredInputParcel mRequiredInput;
|
||||
// in case operation needs to add to/changes the cryptoInputParcel sent to it
|
||||
final CryptoInputParcel mCryptoInputParcel;
|
||||
public final CryptoInputParcel mCryptoInputParcel;
|
||||
|
||||
public InputPendingResult(int result, OperationLog log) {
|
||||
super(result, log);
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.os.Parcelable;
|
||||
import com.textuality.keybase.lib.KeybaseException;
|
||||
import com.textuality.keybase.lib.prover.Prover;
|
||||
|
||||
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
|
||||
import org.sufficientlysecure.keychain.service.input.RequiredInputParcel;
|
||||
|
||||
public class KeybaseVerificationResult extends InputPendingResult {
|
||||
@@ -46,8 +47,9 @@ public class KeybaseVerificationResult extends InputPendingResult {
|
||||
mPresenceLabel = prover.getPresenceLabel();
|
||||
}
|
||||
|
||||
public KeybaseVerificationResult(OperationLog log, RequiredInputParcel requiredInputParcel) {
|
||||
super(log, requiredInputParcel);
|
||||
public KeybaseVerificationResult(OperationLog log, RequiredInputParcel requiredInputParcel,
|
||||
CryptoInputParcel cryptoInputParcel) {
|
||||
super(log, requiredInputParcel, cryptoInputParcel);
|
||||
mProofUrl = null;
|
||||
mPresenceUrl = null;
|
||||
mPresenceLabel = null;
|
||||
|
||||
@@ -22,6 +22,7 @@ import android.os.Parcel;
|
||||
|
||||
import org.sufficientlysecure.keychain.Constants;
|
||||
import org.sufficientlysecure.keychain.pgp.UncachedKeyRing;
|
||||
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
|
||||
import org.sufficientlysecure.keychain.service.input.RequiredInputParcel;
|
||||
|
||||
|
||||
@@ -37,8 +38,9 @@ public class PgpEditKeyResult extends InputPendingResult {
|
||||
mRingMasterKeyId = ring != null ? ring.getMasterKeyId() : Constants.key.none;
|
||||
}
|
||||
|
||||
public PgpEditKeyResult(OperationLog log, RequiredInputParcel requiredInput) {
|
||||
super(log, requiredInput);
|
||||
public PgpEditKeyResult(OperationLog log, RequiredInputParcel requiredInput,
|
||||
CryptoInputParcel cryptoInputParcel) {
|
||||
super(log, requiredInput, cryptoInputParcel);
|
||||
mRingMasterKeyId = Constants.key.none;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ package org.sufficientlysecure.keychain.operations.results;
|
||||
|
||||
import android.os.Parcel;
|
||||
|
||||
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
|
||||
import org.sufficientlysecure.keychain.service.input.RequiredInputParcel;
|
||||
|
||||
|
||||
@@ -38,8 +39,9 @@ public class PgpSignEncryptResult extends InputPendingResult {
|
||||
super(result, log);
|
||||
}
|
||||
|
||||
public PgpSignEncryptResult(OperationLog log, RequiredInputParcel requiredInput) {
|
||||
super(log, requiredInput);
|
||||
public PgpSignEncryptResult(OperationLog log, RequiredInputParcel requiredInput,
|
||||
CryptoInputParcel cryptoInputParcel) {
|
||||
super(log, requiredInput, cryptoInputParcel);
|
||||
}
|
||||
|
||||
public PgpSignEncryptResult(Parcel source) {
|
||||
|
||||
@@ -7,6 +7,7 @@ import android.os.Parcelable;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import org.sufficientlysecure.keychain.R;
|
||||
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
|
||||
import org.sufficientlysecure.keychain.service.input.RequiredInputParcel;
|
||||
import org.sufficientlysecure.keychain.ui.LogDisplayActivity;
|
||||
import org.sufficientlysecure.keychain.ui.LogDisplayFragment;
|
||||
@@ -26,8 +27,9 @@ public class RevokeResult extends InputPendingResult {
|
||||
* @param log operation log upto point of required input, if any
|
||||
* @param requiredInput represents input required
|
||||
*/
|
||||
public RevokeResult(@Nullable OperationLog log, RequiredInputParcel requiredInput) {
|
||||
super(log, requiredInput);
|
||||
public RevokeResult(@Nullable OperationLog log, RequiredInputParcel requiredInput,
|
||||
CryptoInputParcel cryptoInputParcel) {
|
||||
super(log, requiredInput, cryptoInputParcel);
|
||||
// we won't use these values
|
||||
mMasterKeyId = -1;
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import android.os.Parcel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
|
||||
import org.sufficientlysecure.keychain.service.input.RequiredInputParcel;
|
||||
|
||||
|
||||
@@ -29,8 +30,10 @@ public class SignEncryptResult extends InputPendingResult {
|
||||
ArrayList<PgpSignEncryptResult> mResults;
|
||||
byte[] mResultBytes;
|
||||
|
||||
public SignEncryptResult(OperationLog log, RequiredInputParcel requiredInput, ArrayList<PgpSignEncryptResult> results) {
|
||||
super(log, requiredInput);
|
||||
public SignEncryptResult(OperationLog log, RequiredInputParcel requiredInput,
|
||||
ArrayList<PgpSignEncryptResult> results,
|
||||
CryptoInputParcel cryptoInputParcel) {
|
||||
super(log, requiredInput, cryptoInputParcel);
|
||||
mResults = results;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user