diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2015-03-19 14:21:30 +0100 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2015-03-19 14:21:30 +0100 |
commit | 25d89b5550b7fd699988954b07cad61bee9a8ba5 (patch) | |
tree | d114457d5678247f3f31dfbedc1faabfe409588a /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations | |
parent | d46fc3740bbfc3bac0b1133a3e9d47c7ce3e06e2 (diff) | |
download | open-keychain-25d89b5550b7fd699988954b07cad61bee9a8ba5.tar.gz open-keychain-25d89b5550b7fd699988954b07cad61bee9a8ba5.tar.bz2 open-keychain-25d89b5550b7fd699988954b07cad61bee9a8ba5.zip |
generalize NfcOperationParcel to RequiredInputParcel, including passphrases
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations')
4 files changed, 15 insertions, 16 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/CertifyOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/CertifyOperation.java index 140e03764..cc4ca88cb 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/CertifyOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/CertifyOperation.java @@ -28,7 +28,6 @@ import org.sufficientlysecure.keychain.operations.results.OperationResult.Operat import org.sufficientlysecure.keychain.operations.results.SaveKeyringResult; import org.sufficientlysecure.keychain.pgp.CanonicalizedPublicKeyRing; import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey; -import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey.SecretKeyType; import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKeyRing; import org.sufficientlysecure.keychain.pgp.PgpCertifyOperation; import org.sufficientlysecure.keychain.pgp.PgpCertifyOperation.PgpCertifyResult; @@ -40,8 +39,8 @@ import org.sufficientlysecure.keychain.provider.ProviderHelper.NotFoundException import org.sufficientlysecure.keychain.service.CertifyActionsParcel; import org.sufficientlysecure.keychain.service.CertifyActionsParcel.CertifyAction; import org.sufficientlysecure.keychain.service.ContactSyncAdapterService; -import org.sufficientlysecure.keychain.service.input.NfcOperationsParcel; -import org.sufficientlysecure.keychain.service.input.NfcOperationsParcel.NfcSignOperationsBuilder; +import org.sufficientlysecure.keychain.service.input.RequiredInputParcel; +import org.sufficientlysecure.keychain.service.input.RequiredInputParcel.NfcSignOperationsBuilder; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.util.Log; @@ -78,8 +77,13 @@ public class CertifyOperation extends BaseOperation { log.add(LogType.MSG_CRT_UNLOCK, 1); certificationKey = secretKeyRing.getSecretKey(); + if (!parcel.mCryptoInput.hasPassphrase()) { + return new CertifyResult(log, RequiredInputParcel.createRequiredPassphrase( + certificationKey.getKeyId(), null)); + } + // certification is always with the master key id, so use that one - String passphrase = getCachedPassphrase(parcel.mMasterKeyId, parcel.mMasterKeyId); + String passphrase = parcel.mCryptoInput.getPassphrase(); if (!certificationKey.unlock(passphrase)) { log.add(LogType.MSG_CRT_ERROR_UNLOCK, 2); @@ -91,9 +95,6 @@ public class CertifyOperation extends BaseOperation { } catch (NotFoundException e) { log.add(LogType.MSG_CRT_ERROR_MASTER_NOT_FOUND, 2); return new CertifyResult(CertifyResult.RESULT_ERROR, log); - } catch (NoSecretKeyException e) { - log.add(LogType.MSG_CRT_ERROR_MASTER_NOT_FOUND, 2); - return new CertifyResult(CertifyResult.RESULT_ERROR, log); } ArrayList<UncachedKeyRing> certifiedKeys = new ArrayList<>(); @@ -133,7 +134,7 @@ public class CertifyOperation extends BaseOperation { continue; } if (result.nfcInputRequired()) { - NfcOperationsParcel requiredInput = result.getRequiredInput(); + RequiredInputParcel requiredInput = result.getRequiredInput(); allRequiredInput.addAll(requiredInput); continue; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/CertifyResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/CertifyResult.java index 33591fa03..582ed2fc8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/CertifyResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/CertifyResult.java @@ -23,7 +23,7 @@ import android.content.Intent; import android.os.Parcel; import org.sufficientlysecure.keychain.R; -import org.sufficientlysecure.keychain.service.input.NfcOperationsParcel; +import org.sufficientlysecure.keychain.service.input.RequiredInputParcel; import org.sufficientlysecure.keychain.ui.LogDisplayActivity; import org.sufficientlysecure.keychain.ui.LogDisplayFragment; import org.sufficientlysecure.keychain.ui.util.Notify; @@ -38,7 +38,7 @@ public class CertifyResult extends InputPendingResult { super(result, log); } - public CertifyResult(OperationLog log, NfcOperationsParcel requiredInput) { + public CertifyResult(OperationLog log, RequiredInputParcel requiredInput) { super(log, requiredInput); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/InputPendingResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/InputPendingResult.java index b681aba60..07d42c456 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/InputPendingResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/InputPendingResult.java @@ -3,7 +3,7 @@ package org.sufficientlysecure.keychain.operations.results; import android.os.Parcel; -import org.sufficientlysecure.keychain.service.input.NfcOperationsParcel; +import org.sufficientlysecure.keychain.service.input.RequiredInputParcel; public class InputPendingResult extends OperationResult { @@ -14,7 +14,7 @@ public class InputPendingResult extends OperationResult { public static final int RESULT_PENDING_PASSPHRASE = RESULT_PENDING + 16; public static final int RESULT_PENDING_NFC = RESULT_PENDING + 32; - final NfcOperationsParcel mRequiredInput; + final RequiredInputParcel mRequiredInput; final Long mKeyIdPassphraseNeeded; public InputPendingResult(int result, OperationLog log) { @@ -23,7 +23,7 @@ public class InputPendingResult extends OperationResult { mKeyIdPassphraseNeeded = null; } - public InputPendingResult(OperationLog log, NfcOperationsParcel requiredInput) { + public InputPendingResult(OperationLog log, RequiredInputParcel requiredInput) { super(RESULT_PENDING_NFC, log); mRequiredInput = requiredInput; mKeyIdPassphraseNeeded = null; @@ -65,7 +65,7 @@ public class InputPendingResult extends OperationResult { return (mResult & RESULT_PENDING_PASSPHRASE) == RESULT_PENDING_PASSPHRASE; } - public NfcOperationsParcel getNfcOperationsParcel() { + public RequiredInputParcel getRequiredInputParcel() { return mRequiredInput; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/SignEncryptResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/SignEncryptResult.java index 5a0a51ee5..87483ade9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/SignEncryptResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/SignEncryptResult.java @@ -21,8 +21,6 @@ import android.os.Parcel; import java.util.ArrayList; -import org.sufficientlysecure.keychain.service.input.NfcOperationsParcel; - public class SignEncryptResult extends OperationResult { |