diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java index 9b070175c..7544f7b86 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java @@ -226,7 +226,7 @@ public class PgpImportExport { try { WrappedPublicKeyRing ring = mProviderHelper.getWrappedPublicKeyRing( - KeychainContract.KeyRings.buildGenericKeyRingUri(pubKeyMasterId) + KeychainContract.KeyRings.buildUnifiedKeyRingUri(pubKeyMasterId) ); ring.encode(arOutStream); 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 e1ce62bdf..371202217 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java @@ -547,6 +547,7 @@ public class UncachedKeyRing { // if we already have a cert, and this one is not newer: skip it if (selfCert != null && selfCert.getCreationTime().before(cert.getCreationTime())) { + log.add(LogLevel.DEBUG, LogType.MSG_KC_SUB_DUP, indent); redundantCerts += 1; continue; } @@ -574,8 +575,9 @@ public class UncachedKeyRing { continue; } - // if there is no binding (yet), or the revocation is newer than the binding: keep it + // if there is a certification that is newer than this revocation, don't bother if (selfCert != null && selfCert.getCreationTime().after(cert.getCreationTime())) { + log.add(LogLevel.DEBUG, LogType.MSG_KC_SUB_REVOKE_DUP, indent); redundantCerts += 1; continue; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/OperationResultParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/OperationResultParcel.java index 6e49baf92..f88df5301 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/OperationResultParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/OperationResultParcel.java @@ -201,6 +201,7 @@ public class OperationResultParcel implements Parcelable { MSG_KC_SUB_BAD_KEYID(R.string.msg_kc_sub_bad_keyid), MSG_KC_SUB_BAD_TIME(R.string.msg_kc_sub_bad_time), MSG_KC_SUB_BAD_TYPE(R.string.msg_kc_sub_bad_type), + MSG_KC_SUB_DUP (R.string.msg_kc_sub_dup), MSG_KC_SUB_PRIMARY_BAD(R.string.msg_kc_sub_primary_bad), MSG_KC_SUB_PRIMARY_BAD_ERR(R.string.msg_kc_sub_primary_bad_err), MSG_KC_SUB_PRIMARY_NONE(R.string.msg_kc_sub_primary_none), diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 3221cd9cd..e24ac6925 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -578,13 +578,14 @@ Subkey binding issuer id mismatch Removing subkey binding certificate with future timestamp Unknown subkey certificate type: %s + Removing redundant subkey binding certificate Removing subkey binding certificate due to invalid primary binding certificate Removing subkey binding certificate due to bad primary binding certificate Removing subkey binding certificate due to missing primary binding certificate No valid certificate found for %s, removing from ring - Removing bad subkey revocation key - Removing bad subkey revocation key - Removing redundant keyring revocation key + Removing bad subkey revocation certificate + Removing bad subkey revocation certificate + Removing redundant subkey revocation certificate Keyring canonicalization successful, no changes Keyring canonicalization successful, removed %s erroneous certificates Keyring canonicalization successful, removed %1$s erroneous and %2$s redundant certificates