From 405b959fb8047d197b4447c568df87938a2a5638 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 31 Aug 2015 23:42:19 +0200 Subject: No show key button for RESULT_INVALID_SIGNATURE, Cleanup --- .../sufficientlysecure/keychain/pgp/PgpSecurityConstants.java | 2 +- .../sufficientlysecure/keychain/ui/NfcOperationActivity.java | 11 ++++++++--- .../sufficientlysecure/keychain/ui/base/BaseNfcActivity.java | 9 ++++++--- .../keychain/ui/util/KeyFormattingUtils.java | 8 +++++--- 4 files changed, 20 insertions(+), 10 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSecurityConstants.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSecurityConstants.java index ee7e3b3eb..cbd8ce47a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSecurityConstants.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSecurityConstants.java @@ -206,7 +206,7 @@ public class PgpSecurityConstants { * TODO: Ed25519 * CITE: zooko's hash function table CITE: distinguishers on SHA-256 */ - public static final int DEFAULT_HASH_ALGORITHM = HashAlgorithmTags.SHA256; + public static final int DEFAULT_HASH_ALGORITHM = HashAlgorithmTags.SHA512; public interface OpenKeychainHashAlgorithmTags extends HashAlgorithmTags { int USE_DEFAULT = -1; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java index d9b31de98..7a2313e0f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java @@ -313,11 +313,16 @@ public class NfcOperationActivity extends BaseNfcActivity { } private boolean shouldPutKey(byte[] fingerprint, int idx) throws IOException { - byte[] cardFingerprint = nfcGetFingerprint(idx); + byte[] cardFingerprint = nfcGetMasterKeyFingerprint(idx); + + // Note: special case: This should not happen, but happens with + // https://github.com/FluffyKaon/OpenPGP-Card, thus for now assume true + if (cardFingerprint == null) { + return true; + } // Slot is empty, or contains this key already. PUT KEY operation is safe - if (cardFingerprint == null || - Arrays.equals(cardFingerprint, BLANK_FINGERPRINT) || + if (Arrays.equals(cardFingerprint, BLANK_FINGERPRINT) || Arrays.equals(cardFingerprint, fingerprint)) { return true; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseNfcActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseNfcActivity.java index dfb116173..e68684c52 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseNfcActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseNfcActivity.java @@ -453,7 +453,7 @@ public abstract class BaseNfcActivity extends BaseActivity { * @return The long key id of the requested key, or null if not found. */ public Long nfcGetKeyId(int idx) throws IOException { - byte[] fp = nfcGetFingerprint(idx); + byte[] fp = nfcGetMasterKeyFingerprint(idx); if (fp == null) { return null; } @@ -499,7 +499,7 @@ public abstract class BaseNfcActivity extends BaseActivity { * @param idx Index of the key to return the fingerprint from. * @return The fingerprint of the requested key, or null if not found. */ - public byte[] nfcGetFingerprint(int idx) throws IOException { + public byte[] nfcGetMasterKeyFingerprint(int idx) throws IOException { byte[] data = nfcGetFingerprints(); if (data == null) { return null; @@ -952,8 +952,11 @@ public abstract class BaseNfcActivity extends BaseActivity { name = (new String(Hex.decode(name))).replace('<', ' '); return name; } catch (IndexOutOfBoundsException e) { - Log.e(Constants.TAG, "couldn't get holder name", e); // try-catch for https://github.com/FluffyKaon/OpenPGP-Card + // Note: This should not happen, but happens with + // https://github.com/FluffyKaon/OpenPGP-Card, thus return an empty string for now! + + Log.e(Constants.TAG, "Couldn't get holder name, returning empty string!", e); return ""; } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java index 8f5753dae..9ab0db03e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java @@ -571,8 +571,9 @@ public class KeyFormattingUtils { sigIcon = R.drawable.status_signature_invalid_cutout_24dp; sigColor = R.color.key_flag_red; - sigActionText = R.string.decrypt_result_action_show; - sigActionIcon = R.drawable.ic_vpn_key_grey_24dp; + // won't be used, but makes compiler happy + sigActionText = 0; + sigActionIcon = 0; break; } @@ -584,7 +585,8 @@ public class KeyFormattingUtils { holder.getSignatureStatusText().setText(sigText); holder.getSignatureStatusText().setTextColor(sigColorRes); - if (signatureResult.getResult() != OpenPgpSignatureResult.RESULT_NO_SIGNATURE) { + if (signatureResult.getResult() != OpenPgpSignatureResult.RESULT_NO_SIGNATURE + && signatureResult.getResult() != OpenPgpSignatureResult.RESULT_INVALID_SIGNATURE) { // has a signature, thus display layouts holder.getSignatureLayout().setVisibility(View.VISIBLE); -- cgit v1.2.3