diff options
author | Adithya Abraham Philip <adithyaphilip@gmail.com> | 2015-07-15 07:26:45 +0530 |
---|---|---|
committer | Adithya Abraham Philip <adithyaphilip@gmail.com> | 2015-07-15 07:34:03 +0530 |
commit | 771d65476647c4df0d88e95f8df80b201eeb9bf3 (patch) | |
tree | 83c52c6df4e0f87c3905a144b63c014969a663b7 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/input/CryptoInputParcel.java | |
parent | 03a30fe0e3e612a9d23372125118a28950f4628f (diff) | |
download | open-keychain-771d65476647c4df0d88e95f8df80b201eeb9bf3.tar.gz open-keychain-771d65476647c4df0d88e95f8df80b201eeb9bf3.tar.bz2 open-keychain-771d65476647c4df0d88e95f8df80b201eeb9bf3.zip |
made mSignatureTime optional in CryptoOperationHelper
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/input/CryptoInputParcel.java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/input/CryptoInputParcel.java | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/input/CryptoInputParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/input/CryptoInputParcel.java index 9ba9601e5..0d8569fe6 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/input/CryptoInputParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/input/CryptoInputParcel.java @@ -33,7 +33,9 @@ import java.util.Map; */ public class CryptoInputParcel implements Parcelable { - final Date mSignatureTime; + private Date mSignatureTime; + private boolean mHasSignature; + public Passphrase mPassphrase; // used to supply an explicit proxy to operations that require it // this is not final so it can be added to an existing CryptoInputParcel @@ -48,24 +50,25 @@ public class CryptoInputParcel implements Parcelable { private HashMap<ByteBuffer, byte[]> mCryptoData = new HashMap<>(); public CryptoInputParcel() { - mSignatureTime = new Date(); + mSignatureTime = null; mPassphrase = null; mCachePassphrase = true; } public CryptoInputParcel(Date signatureTime, Passphrase passphrase) { + mHasSignature = true; mSignatureTime = signatureTime == null ? new Date() : signatureTime; mPassphrase = passphrase; mCachePassphrase = true; } public CryptoInputParcel(Passphrase passphrase) { - mSignatureTime = new Date(); mPassphrase = passphrase; mCachePassphrase = true; } public CryptoInputParcel(Date signatureTime) { + mHasSignature = true; mSignatureTime = signatureTime == null ? new Date() : signatureTime; mPassphrase = null; mCachePassphrase = true; @@ -76,14 +79,22 @@ public class CryptoInputParcel implements Parcelable { mParcelableProxy = parcelableProxy; } - public CryptoInputParcel(boolean cachePassphrase) { - mSignatureTime = new Date(); + public CryptoInputParcel(Date signatureTime, boolean cachePassphrase) { + mHasSignature = true; + mSignatureTime = signatureTime == null ? new Date() : signatureTime; mPassphrase = null; mCachePassphrase = cachePassphrase; } + public CryptoInputParcel(boolean cachePassphrase) { + mCachePassphrase = cachePassphrase; + } + protected CryptoInputParcel(Parcel source) { - mSignatureTime = new Date(source.readLong()); + mHasSignature = source.readByte() != 0; + if (mHasSignature) { + mSignatureTime = new Date(source.readLong()); + } mPassphrase = source.readParcelable(getClass().getClassLoader()); mParcelableProxy = source.readParcelable(getClass().getClassLoader()); mCachePassphrase = source.readByte() != 0; @@ -107,7 +118,10 @@ public class CryptoInputParcel implements Parcelable { @Override public void writeToParcel(Parcel dest, int flags) { - dest.writeLong(mSignatureTime.getTime()); + dest.writeByte((byte) (mHasSignature ? 1 : 0)); + if (mHasSignature) { + dest.writeLong(mSignatureTime.getTime()); + } dest.writeParcelable(mPassphrase, 0); dest.writeParcelable(mParcelableProxy, 0); dest.writeByte((byte) (mCachePassphrase ? 1 : 0)); @@ -123,6 +137,10 @@ public class CryptoInputParcel implements Parcelable { mParcelableProxy = parcelableProxy; } + public void addSignatureTime(Date signatureTime) { + mSignatureTime = signatureTime; + } + public void addCryptoData(byte[] hash, byte[] signedHash) { mCryptoData.put(ByteBuffer.wrap(hash), signedHash); } |