overhaul advanced subkeys tab

This commit is contained in:
Vincent Breitmoser
2018-07-23 16:57:45 +02:00
parent e08bf89e0f
commit fe387ca4e1
13 changed files with 569 additions and 504 deletions

View File

@@ -27,6 +27,7 @@ import android.os.Parcelable;
import android.support.annotation.Nullable;
import com.google.auto.value.AutoValue;
import org.bouncycastle.bcpg.sig.KeyFlags;
import org.sufficientlysecure.keychain.keyimport.HkpKeyserverAddress;
import org.sufficientlysecure.keychain.pgp.WrappedUserAttribute;
import org.sufficientlysecure.keychain.util.Passphrase;
@@ -224,6 +225,18 @@ public abstract class SaveKeyringParcel implements Parcelable {
return autoBuild();
}
public boolean hasModificationsForSubkey(long keyId) {
return revokeSubKeys.contains(keyId) || getSubkeyChange(keyId) != null;
}
public void removeModificationsForSubkey(long keyId) {
revokeSubKeys.remove(keyId);
SubkeyChange subkeyChange = getSubkeyChange(keyId);
if (subkeyChange != null) {
changeSubKeys.remove(subkeyChange);
}
}
}
// performance gain for using Parcelable here would probably be negligible,
@@ -243,6 +256,22 @@ public abstract class SaveKeyringParcel implements Parcelable {
Long expiry) {
return new AutoValue_SaveKeyringParcel_SubkeyAdd(algorithm, keySize, curve, flags, expiry);
}
public boolean canCertify() {
return (getFlags() & KeyFlags.CERTIFY_OTHER) > 0;
}
public boolean canSign() {
return (getFlags() & KeyFlags.SIGN_DATA) > 0;
}
public boolean canEncrypt() {
return ((getFlags() & KeyFlags.ENCRYPT_COMMS) > 0) || ((getFlags() & KeyFlags.ENCRYPT_STORAGE) > 0);
}
public boolean canAuthenticate() {
return (getFlags() & KeyFlags.AUTHENTICATION) > 0;
}
}
@AutoValue