From a64443e71fbd5c7976b0986686deff5b1bc846e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 1 Sep 2014 00:14:59 +0200 Subject: Experimental support for revoked, expired keys with signatures --- .../pgp/OpenPgpSignatureResultBuilder.java | 48 ++++++++++++++++------ 1 file changed, 36 insertions(+), 12 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/OpenPgpSignatureResultBuilder.java') 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 a6a15d2e9..ab88d1b4b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/OpenPgpSignatureResultBuilder.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/OpenPgpSignatureResultBuilder.java @@ -21,6 +21,8 @@ import org.openintents.openpgp.OpenPgpSignatureResult; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.util.Log; +import java.util.ArrayList; + /** * This class can be used to build OpenPgpSignatureResult objects based on several checks. * It serves as a constraint which information are returned inside an OpenPgpSignatureResult object. @@ -28,7 +30,8 @@ import org.sufficientlysecure.keychain.util.Log; public class OpenPgpSignatureResultBuilder { // OpenPgpSignatureResult private boolean mSignatureOnly = false; - private String mUserId; + private String mPrimaryUserId; + private ArrayList mUserIds = new ArrayList(); private long mKeyId; // builder @@ -36,35 +39,49 @@ public class OpenPgpSignatureResultBuilder { private boolean mKnownKey = false; private boolean mValidSignature = false; private boolean mIsSignatureKeyCertified = false; + private boolean mIsKeyRevoked = false; + private boolean mIsKeyExpired = false; - public void signatureOnly(boolean signatureOnly) { + public void setSignatureOnly(boolean signatureOnly) { this.mSignatureOnly = signatureOnly; } - public void userId(String userId) { - this.mUserId = userId; + public void setPrimaryUserId(String userId) { + this.mPrimaryUserId = userId; } - public void keyId(long keyId) { + public void setKeyId(long keyId) { this.mKeyId = keyId; } - public void knownKey(boolean knownKey) { + public void setKnownKey(boolean knownKey) { this.mKnownKey = knownKey; } - public void validSignature(boolean validSignature) { + public void setValidSignature(boolean validSignature) { this.mValidSignature = validSignature; } - public void signatureKeyCertified(boolean isSignatureKeyCertified) { + public void setSignatureKeyCertified(boolean isSignatureKeyCertified) { this.mIsSignatureKeyCertified = isSignatureKeyCertified; } - public void signatureAvailable(boolean signatureAvailable) { + public void setSignatureAvailable(boolean signatureAvailable) { this.mSignatureAvailable = signatureAvailable; } + public void setKeyRevoked(boolean keyRevoked) { + this.mIsKeyRevoked = keyRevoked; + } + + public void setKeyExpired(boolean keyExpired) { + this.mIsKeyExpired = keyExpired; + } + + public void setUserIds(ArrayList userIds) { + this.mUserIds = userIds; + } + public boolean isValidSignature() { return mValidSignature; } @@ -78,9 +95,16 @@ public class OpenPgpSignatureResultBuilder { if (mKnownKey) { if (mValidSignature) { result.setKeyId(mKeyId); - result.setPrimaryUserId(mUserId); - - if (mIsSignatureKeyCertified) { + result.setPrimaryUserId(mPrimaryUserId); + result.setUserIds(mUserIds); + + if (mIsKeyRevoked) { + Log.d(Constants.TAG, "SIGNATURE_KEY_REVOKED"); + result.setStatus(OpenPgpSignatureResult.SIGNATURE_KEY_REVOKED); + } else if (mIsKeyExpired) { + Log.d(Constants.TAG, "SIGNATURE_KEY_EXPIRED"); + result.setStatus(OpenPgpSignatureResult.SIGNATURE_KEY_EXPIRED); + } else if (mIsSignatureKeyCertified) { Log.d(Constants.TAG, "SIGNATURE_SUCCESS_CERTIFIED"); result.setStatus(OpenPgpSignatureResult.SIGNATURE_SUCCESS_CERTIFIED); } else { -- cgit v1.2.3