From 0ffa1b94ded0bb89c0f1b0f3ed48562646bde3fc Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Sat, 4 Oct 2014 18:28:07 +0200 Subject: certify: get rid of fingerprint check Master key ids are unambiguous by database design, and only keys which are in the database are signed. There is no reason to check the fingerprint again during the certify operation. --- .../org/sufficientlysecure/keychain/pgp/PgpCertifyOperation.java | 5 ----- .../sufficientlysecure/keychain/service/CertifyActionsParcel.java | 8 +++----- .../keychain/service/results/OperationResult.java | 1 - .../org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java | 7 +++---- OpenKeychain/src/main/res/values/strings.xml | 1 - 5 files changed, 6 insertions(+), 16 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpCertifyOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpCertifyOperation.java index 3a29faec3..2a74c8d8c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpCertifyOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpCertifyOperation.java @@ -86,11 +86,6 @@ public class PgpCertifyOperation { CanonicalizedPublicKeyRing publicRing = mProviderHelper.getCanonicalizedPublicKeyRing(action.mMasterKeyId); - if ( ! Arrays.equals(publicRing.getFingerprint(), action.mFingerprint)) { - log.add(LogType.MSG_CRT_FP_MISMATCH, 3); - certifyError += 1; - continue; - } UncachedKeyRing certifiedKey = certificationKey.certifyUserIds(publicRing, action.mUserIds, null, null); certifiedKeys.add(certifiedKey); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/CertifyActionsParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/CertifyActionsParcel.java index d2562d728..dd9c0d769 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/CertifyActionsParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/CertifyActionsParcel.java @@ -74,17 +74,15 @@ public class CertifyActionsParcel implements Parcelable { // TODO make this parcelable public static class CertifyAction implements Serializable { final public long mMasterKeyId; - final public byte[] mFingerprint; final public ArrayList mUserIds; - public CertifyAction(long masterKeyId, byte[] fingerprint) { - this(masterKeyId, fingerprint, null); + public CertifyAction(long masterKeyId) { + this(masterKeyId, null); } - public CertifyAction(long masterKeyId, byte[] fingerprint, ArrayList userIds) { + public CertifyAction(long masterKeyId, ArrayList userIds) { mMasterKeyId = masterKeyId; - mFingerprint = fingerprint; mUserIds = userIds; } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/results/OperationResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/results/OperationResult.java index 5613aa794..234b13ac2 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/results/OperationResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/results/OperationResult.java @@ -523,7 +523,6 @@ public abstract class OperationResult implements Parcelable { MSG_CRT_ERROR_MASTER_NOT_FOUND (LogLevel.ERROR, R.string.msg_crt_error_master_not_found), MSG_CRT_ERROR_NOTHING (LogLevel.ERROR, R.string.msg_crt_error_nothing), MSG_CRT_ERROR_UNLOCK (LogLevel.ERROR, R.string.msg_crt_error_unlock), - MSG_CRT_FP_MISMATCH (LogLevel.WARN, R.string.msg_crt_fp_mismatch), MSG_CRT (LogLevel.START, R.string.msg_crt), MSG_CRT_MASTER_FETCH (LogLevel.DEBUG, R.string.msg_crt_master_fetch), MSG_CRT_SAVE (LogLevel.DEBUG, R.string.msg_crt_save), diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java index 685581be7..0c3eeece4 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java @@ -85,7 +85,6 @@ public class CertifyKeyFragment extends LoaderFragment private Uri mDataUri; private long mPubKeyId = Constants.key.none; - private byte[] mPubFingerprint; private long mMasterKeyId = Constants.key.none; private UserIdsAdapter mUserIdsAdapter; @@ -246,8 +245,8 @@ public class CertifyKeyFragment extends LoaderFragment String mainUserId = data.getString(INDEX_USER_ID); mInfoPrimaryUserId.setText(mainUserId); - mPubFingerprint = data.getBlob(INDEX_FINGERPRINT); - String fingerprint = KeyFormattingUtils.convertFingerprintToHex(mPubFingerprint); + byte[] fp = data.getBlob(INDEX_FINGERPRINT); + String fingerprint = KeyFormattingUtils.convertFingerprintToHex(fp); mInfoFingerprint.setText(KeyFormattingUtils.colorizeFingerprint(fingerprint)); } break; @@ -316,7 +315,7 @@ public class CertifyKeyFragment extends LoaderFragment // fill values for this action CertifyActionsParcel parcel = new CertifyActionsParcel(mMasterKeyId); - parcel.add(new CertifyAction(mPubKeyId, mPubFingerprint, userIds)); + parcel.add(new CertifyAction(mPubKeyId, userIds)); Bundle data = new Bundle(); data.putParcelable(KeychainIntentService.CERTIFY_PARCEL, parcel); diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index ac2be23fa..93a6d0da1 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -902,7 +902,6 @@ "Master key not found!" "No keys certified!" "Error unlocking master key!" - "Fingerprint mismatch, not certifying!" "Certifying keyrings" "Fetching certifying master key" "Saving certified key %s" -- cgit v1.2.3