From 9333d34929020f5e186ff896d3e3efd4c206a2eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Sat, 13 Sep 2014 21:42:17 +0200 Subject: [PATCH 1/3] Cleanup test --- .../keychain/provider/ProviderHelperSaveTest.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperSaveTest.java b/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperSaveTest.java index c431dff1b..2d6b1b127 100644 --- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperSaveTest.java +++ b/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperSaveTest.java @@ -76,8 +76,7 @@ public class ProviderHelperSaveTest { @Test public void testImportNoFlagKey() throws Exception { - UncachedKeyRing pub = - readRingFromResource("/test-keys/mailvelope_07_no_key_flags.asc"); + UncachedKeyRing pub = readRingFromResource("/test-keys/mailvelope_07_no_key_flags.asc"); long keyId = pub.getMasterKeyId(); Assert.assertNull("key flags should be null", pub.getPublicKey().getKeyUsage()); @@ -100,8 +99,7 @@ public class ProviderHelperSaveTest { @Test public void testImportDivertToCard() throws Exception { - UncachedKeyRing sec = - readRingFromResource("/test-keys/divert_to_card_sec.asc"); + UncachedKeyRing sec = readRingFromResource("/test-keys/divert_to_card_sec.asc"); long keyId = sec.getMasterKeyId(); SaveKeyringResult result; @@ -124,8 +122,7 @@ public class ProviderHelperSaveTest { @Test public void testImportBadEncodedUserId() throws Exception { - UncachedKeyRing key = - readRingFromResource("/test-keys/bad_user_id_encoding.asc"); + UncachedKeyRing key = readRingFromResource("/test-keys/bad_user_id_encoding.asc"); long keyId = key.getMasterKeyId(); SaveKeyringResult result; @@ -133,8 +130,6 @@ public class ProviderHelperSaveTest { result = mProviderHelper.savePublicKeyRing(key, new ProgressScaler()); Assert.assertTrue("import of keyring should succeed", result.success()); - // make sure both the CanonicalizedSecretKeyRing as well as the CachedPublicKeyRing correctly - // indicate the secret key type CanonicalizedPublicKeyRing ring = mProviderHelper.getCanonicalizedPublicKeyRing(keyId); boolean found = false; byte[] badUserId = Hex.decode("436c61757320467261656e6b656c203c436c6175732e4672e46e6b656c4068616c696661782e727774682d61616368656e2e64653e"); From 8a188a79dc289052b66f44ff6b57437d59a0cfa6 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Sat, 13 Sep 2014 21:43:37 +0200 Subject: [PATCH 2/3] log warning on bad uid encoding --- .../org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java | 5 +++++ .../keychain/service/results/OperationResultParcel.java | 1 + OpenKeychain/src/main/res/values/strings.xml | 1 + 3 files changed, 7 insertions(+) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java index fe4e7ffa7..3a8514faa 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java @@ -438,6 +438,11 @@ public class UncachedKeyRing { badCerts += 1; continue; } + // warn user if the signature was made with bad encoding + if (!cert.verifySignature(masterKey, userId)) { + log.add(LogLevel.WARN, LogType.MSG_KC_UID_WARN_ENCODING, + indent, userId); + } } catch (PgpGeneralException e) { log.add(LogLevel.WARN, LogType.MSG_KC_UID_BAD_ERR, indent, userId); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/results/OperationResultParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/results/OperationResultParcel.java index 1a77d96d3..46823a24d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/results/OperationResultParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/results/OperationResultParcel.java @@ -339,6 +339,7 @@ public class OperationResultParcel implements Parcelable { MSG_KC_UID_REVOKE_DUP (R.string.msg_kc_uid_revoke_dup), MSG_KC_UID_REVOKE_OLD (R.string.msg_kc_uid_revoke_old), MSG_KC_UID_REMOVE (R.string.msg_kc_uid_remove), + MSG_KC_UID_WARN_ENCODING (R.string.msg_kc_uid_warn_encoding), // keyring consolidation diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 378d68c21..9e9b47c7c 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -661,6 +661,7 @@ "No valid self-certificate found for user id '%s', removing from ring" "Removing invalid user id '%s'" "Removing duplicate user id '%s'. The secret key contained two of them. This may result in missing certificates!" + "User id does not verify as UTF-8!" "New public subkey found, but secret subkey dummy generation is not supported!" From 3b8c171ecb21e4cf842131777e560b3186021637 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Sat, 13 Sep 2014 21:47:04 +0200 Subject: [PATCH 3/3] very small fix, don't show name on encoding warning --- .../org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java index 3a8514faa..d64c3ea55 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java @@ -440,8 +440,7 @@ public class UncachedKeyRing { } // warn user if the signature was made with bad encoding if (!cert.verifySignature(masterKey, userId)) { - log.add(LogLevel.WARN, LogType.MSG_KC_UID_WARN_ENCODING, - indent, userId); + log.add(LogLevel.WARN, LogType.MSG_KC_UID_WARN_ENCODING, indent); } } catch (PgpGeneralException e) { log.add(LogLevel.WARN, LogType.MSG_KC_UID_BAD_ERR,