From 28b9068ae03b6c17b247a1d2fdf9b20d8a11a274 Mon Sep 17 00:00:00 2001 From: Joey Castillo Date: Wed, 13 May 2015 06:01:42 -0400 Subject: Adding keytocard flag to SubkeyChange: UI sets this flag to initiate keytocard; operation unsets it and fills in dummyDivert to finish it. --- .../keychain/service/SaveKeyringParcel.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/SaveKeyringParcel.java') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/SaveKeyringParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/SaveKeyringParcel.java index 6064c28fb..dd6697f21 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/SaveKeyringParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/SaveKeyringParcel.java @@ -95,8 +95,8 @@ public class SaveKeyringParcel implements Parcelable { } for (SubkeyChange change : mChangeSubKeys) { - if (change.mRecertify || change.mFlags != null || change.mExpiry != null || - (change.mDummyDivert != null && change.mDummyDivert.length == 0)) { + if (change.mRecertify || change.mFlags != null || change.mExpiry != null + || change.mMoveKeyToCard) { return false; } } @@ -143,6 +143,8 @@ public class SaveKeyringParcel implements Parcelable { public boolean mRecertify; // if this flag is true, the subkey should be changed to a stripped key public boolean mDummyStrip; + // if this flag is true, the subkey should be moved to a card + public boolean mMoveKeyToCard; // if this is non-null, the subkey will be changed to a divert-to-card // key for the given serial number public byte[] mDummyDivert; @@ -174,12 +176,25 @@ public class SaveKeyringParcel implements Parcelable { mDummyDivert = dummyDivert; } + public SubkeyChange(long keyId, boolean dummyStrip, boolean moveKeyToCard) { + this(keyId, null, null); + + // these flags are mutually exclusive! + if (dummyStrip && moveKeyToCard) { + throw new AssertionError( + "cannot set strip and keytocard flags at the same time - this is a bug!"); + } + mDummyStrip = dummyStrip; + mMoveKeyToCard = moveKeyToCard; + } + @Override public String toString() { String out = "mKeyId: " + mKeyId + ", "; out += "mFlags: " + mFlags + ", "; out += "mExpiry: " + mExpiry + ", "; out += "mDummyStrip: " + mDummyStrip + ", "; + out += "mMoveKeyToCard: " + mMoveKeyToCard + ", "; out += "mDummyDivert: [" + (mDummyDivert == null ? 0 : mDummyDivert.length) + " bytes]"; return out; -- cgit v1.2.3