diff options
| author | Vincent Breitmoser <valodim@mugenguild.com> | 2015-02-26 18:53:42 +0100 | 
|---|---|---|
| committer | Vincent Breitmoser <valodim@mugenguild.com> | 2015-02-26 18:53:42 +0100 | 
| commit | 55dd6526a607c35ac31e56e1e26deb151b950218 (patch) | |
| tree | 4af01faddeb440c6be76ff5f2feecf2658f064bd /OpenKeychain/src/main/java | |
| parent | e5bb7a35b5202cf8ef13325d86ef82f2583700b7 (diff) | |
| download | open-keychain-55dd6526a607c35ac31e56e1e26deb151b950218.tar.gz open-keychain-55dd6526a607c35ac31e56e1e26deb151b950218.tar.bz2 open-keychain-55dd6526a607c35ac31e56e1e26deb151b950218.zip | |
split up and mark unsafe expiry-related methods
Diffstat (limited to 'OpenKeychain/src/main/java')
3 files changed, 27 insertions, 6 deletions
| diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysListEntry.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysListEntry.java index 591408c8b..79065604a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysListEntry.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysListEntry.java @@ -294,8 +294,8 @@ public class ImportKeysListEntry implements Serializable, Parcelable {          mKeyId = key.getKeyId();          mKeyIdHex = KeyFormattingUtils.convertKeyIdToHex(mKeyId); -        mRevoked = key.isRevoked(); -        mExpired = key.isExpired(); +        mRevoked = key.isMaybeRevoked(); +        mExpired = key.isMaybeExpired();          mFingerprintHex = KeyFormattingUtils.convertFingerprintToHex(key.getFingerprint());          mBitStrength = key.getBitStrength();          mCurveOid = key.getCurveOid(); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/OpenPgpSignatureResultBuilder.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/OpenPgpSignatureResultBuilder.java index ed4715681..46defebf7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/OpenPgpSignatureResultBuilder.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/OpenPgpSignatureResultBuilder.java @@ -104,8 +104,8 @@ public class OpenPgpSignatureResultBuilder {          setUserIds(signingRing.getUnorderedUserIds());          // either master key is expired/revoked or this specific subkey is expired/revoked -        setKeyExpired(signingRing.isExpired() || signingKey.isExpired()); -        setKeyRevoked(signingRing.isRevoked() || signingKey.isRevoked()); +        setKeyExpired(signingRing.isExpired() || signingKey.isMaybeExpired()); +        setKeyRevoked(signingRing.isRevoked() || signingKey.isMaybeRevoked());      }      public OpenPgpSignatureResult build() { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java index d29169cc4..9276cba10 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java @@ -50,7 +50,7 @@ public class UncachedPublicKey {      }      /** The revocation signature is NOT checked here, so this may be false! */ -    public boolean isRevoked() { +    public boolean isMaybeRevoked() {          return mPublicKey.getSignaturesOfType(isMasterKey()                  ? PGPSignature.KEY_REVOCATION                  : PGPSignature.SUBKEY_REVOCATION).hasNext(); @@ -60,7 +60,8 @@ public class UncachedPublicKey {          return mPublicKey.getCreationTime();      } -    public boolean isExpired() { +    /** The revocation signature is NOT checked here, so this may be false! */ +    public boolean isMaybeExpired() {          Date creationDate = mPublicKey.getCreationTime();          Date expiryDate = mPublicKey.getValidSeconds() > 0                  ? new Date(creationDate.getTime() + mPublicKey.getValidSeconds() * 1000) : null; @@ -340,4 +341,24 @@ public class UncachedPublicKey {          return mCacheUsage;      } +    // this method relies on UNSAFE assumptions about the keyring, and should ONLY be used for +    // TEST CASES!! +    Date getUnsafeExpiryTimeForTesting () { +        long valid = mPublicKey.getValidSeconds(); + +        if (valid > Integer.MAX_VALUE) { +            Log.e(Constants.TAG, "error, expiry time too large"); +            return null; +        } +        if (valid == 0) { +            // no expiry +            return null; +        } +        Date creationDate = getCreationTime(); +        Calendar calendar = GregorianCalendar.getInstance(); +        calendar.setTime(creationDate); +        calendar.add(Calendar.SECOND, (int) valid); + +        return calendar.getTime(); +    }  } | 
