aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport
diff options
context:
space:
mode:
authorTim Bray <timbray@gmail.com>2014-09-13 09:39:10 -0700
committerTim Bray <timbray@gmail.com>2014-09-13 21:41:03 -0700
commit7de86a09bc3bae47c44b9dcb65bbda1298ccf843 (patch)
treea4f9a8b24958b500ed52415d1f1584a03b865779 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport
parente14cf32264d92c4b0d4ca782d74a1589ee52a396 (diff)
downloadopen-keychain-7de86a09bc3bae47c44b9dcb65bbda1298ccf843.tar.gz
open-keychain-7de86a09bc3bae47c44b9dcb65bbda1298ccf843.tar.bz2
open-keychain-7de86a09bc3bae47c44b9dcb65bbda1298ccf843.zip
Change shuffle to rotate, and when merging ImportKeysList entries, if either side is revoked/expired, the merge reflects that
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysList.java12
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/KeybaseKeyserver.java2
2 files changed, 12 insertions, 2 deletions
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 15de8cb8f..00bbca69c 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysList.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysList.java
@@ -50,15 +50,23 @@ public class ImportKeysList extends ArrayList<ImportKeysListEntry> {
private synchronized boolean addOrMerge(ImportKeysListEntry toAdd) {
for (ImportKeysListEntry existing : this) {
if (toAdd.hasSameKeyAs(existing)) {
- return mergeIDs(toAdd, existing);
+ return mergeDupes(toAdd, existing);
}
}
return super.add(toAdd);
}
// being a little anal about the ArrayList#addAll contract here
- private boolean mergeIDs(ImportKeysListEntry incoming, ImportKeysListEntry existing) {
+ private boolean mergeDupes(ImportKeysListEntry incoming, ImportKeysListEntry existing) {
boolean modified = false;
+ if (incoming.isRevoked()) {
+ existing.setRevoked(true);
+ modified = true;
+ }
+ if (incoming.isExpired()) {
+ existing.setExpired(true);
+ modified = true;
+ }
ArrayList<String> incomingIDs = incoming.getUserIds();
ArrayList<String> existingIDs = existing.getUserIds();
for (String incomingID : incomingIDs) {
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/KeybaseKeyserver.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/KeybaseKeyserver.java
index cbd06da90..ff582e5ed 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/KeybaseKeyserver.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/KeybaseKeyserver.java
@@ -65,6 +65,8 @@ public class KeybaseKeyserver extends Keyserver {
entry.setQuery(mQuery);
entry.setOrigin(ORIGIN);
+ entry.setRevoked(false); // keybase doesn’t say anything about revoked keys
+
String username = match.getUsername();
String fullName = match.getFullName();
String fingerprint = match.getFingerprint();