From 6d70e1bfd139c869c9a3eb929c7a9d3f16e7ae14 Mon Sep 17 00:00:00 2001 From: Tim Bray Date: Thu, 25 Sep 2014 02:30:52 -0700 Subject: Fix bug where Keybase extraData gets lost when SKS wins the search race. --- .../sufficientlysecure/keychain/keyimport/ImportKeysList.java | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'OpenKeychain/src/main/java/org') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysList.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysList.java index a8ddd5419..02cb502d0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysList.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysList.java @@ -59,6 +59,8 @@ public class ImportKeysList extends ArrayList { // being a little anal about the ArrayList#addAll contract here private boolean mergeDupes(ImportKeysListEntry incoming, ImportKeysListEntry existing) { boolean modified = false; + + // if any source thinks it’s expired/revoked, it is if (incoming.isRevoked()) { existing.setRevoked(true); modified = true; @@ -67,8 +69,16 @@ public class ImportKeysList extends ArrayList { existing.setExpired(true); modified = true; } + + // we’re going to want to try to fetch the key from everywhere we found it, so remember + // all the origins for (String origin : incoming.getOrigins()) { existing.addOrigin(origin); + + // to work properly, Keybase-sourced entries need to pass along the extra + if (KeybaseKeyserver.ORIGIN.equals(origin)) { + existing.setExtraData(incoming.getExtraData()); + } } ArrayList incomingIDs = incoming.getUserIds(); ArrayList existingIDs = existing.getUserIds(); -- cgit v1.2.3 From 4ccb26d2e584a94ab55835f7c54e119e764fb633 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Fri, 26 Sep 2014 00:38:43 +0200 Subject: nfc: use proper hex encoding for pin length Fixes #886 --- .../src/main/java/org/sufficientlysecure/keychain/ui/NfcActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenKeychain/src/main/java/org') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcActivity.java index fb2209d3e..7aa09e801 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcActivity.java @@ -208,7 +208,7 @@ public class NfcActivity extends ActionBarActivity { + "20" // INS + "00" // P1 + "82" // P2 (PW1) - + String.format("%02d", mPin.length()) // Lc + + String.format("%02x", mPin.length()) // Lc + Hex.toHexString(mPin.getBytes()); if ( ! card(login).equals(accepted)) { // login toast("Wrong PIN!"); -- cgit v1.2.3