aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-04-16 00:18:00 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-04-16 00:18:00 +0200
commitad6ac28782450c3b6f55fd7ae3c7a96b9a667b89 (patch)
tree6944dd8db69212b95132864d67f122c111453c9d /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java
parent08399dec4bbd63e6377b2bd876fbc07c235c65cb (diff)
downloadopen-keychain-ad6ac28782450c3b6f55fd7ae3c7a96b9a667b89.tar.gz
open-keychain-ad6ac28782450c3b6f55fd7ae3c7a96b9a667b89.tar.bz2
open-keychain-ad6ac28782450c3b6f55fd7ae3c7a96b9a667b89.zip
Fix SIGNATURE_UNKNOWN_PUB_KEY
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java14
1 files changed, 6 insertions, 8 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java
index b3572d4a2..a9ad04108 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java
@@ -405,8 +405,6 @@ public class PgpDecryptVerify {
if (dataChunk instanceof PGPOnePassSignatureList) {
updateProgress(R.string.progress_processing_signature, currentProgress, 100);
- signatureResultBuilder.signatureAvailable(true);
-
PGPOnePassSignatureList sigList = (PGPOnePassSignatureList) dataChunk;
// go through all signatures
@@ -439,6 +437,7 @@ public class PgpDecryptVerify {
// get the subkey which has been used to generate this signature
signatureKey = publicKeyRing.getPublicKey(signature.getKeyID());
+ signatureResultBuilder.signatureAvailable(true);
signatureResultBuilder.knownKey(true);
// TODO: uses the first pubkey for information
signatureResultBuilder.userId(PgpKeyHelper.getMainUserId(publicKeyRing.getPublicKey()));
@@ -458,9 +457,9 @@ public class PgpDecryptVerify {
signatureResultBuilder.signatureKeyCertified(isSignatureKeyCertified);
} else {
// no key in our database -> return "unknown pub key" status including the first key id
- signatureResultBuilder.knownKey(false);
-
if (!sigList.isEmpty()) {
+ signatureResultBuilder.signatureAvailable(true);
+ signatureResultBuilder.knownKey(false);
signatureResultBuilder.keyId(sigList.get(0).getKeyID());
}
}
@@ -606,8 +605,6 @@ public class PgpDecryptVerify {
throw new InvalidDataException();
}
- signatureResultBuilder.signatureAvailable(true);
-
// go through all signatures
// and find out for which signature we have a key in our database
Long masterKeyId = null;
@@ -641,6 +638,7 @@ public class PgpDecryptVerify {
// get the subkey which has been used to generate this signature
signatureKey = publicKeyRing.getPublicKey(signature.getKeyID());
+ signatureResultBuilder.signatureAvailable(true);
signatureResultBuilder.knownKey(true);
// TODO: uses the first pubkey for information
signatureResultBuilder.userId(PgpKeyHelper.getMainUserId(publicKeyRing.getPublicKey()));
@@ -660,9 +658,9 @@ public class PgpDecryptVerify {
signatureResultBuilder.signatureKeyCertified(isSignatureKeyCertified);
} else {
// no key in our database -> return "unknown pub key" status including the first key id
- signatureResultBuilder.knownKey(false);
-
if (!sigList.isEmpty()) {
+ signatureResultBuilder.signatureAvailable(true);
+ signatureResultBuilder.knownKey(false);
signatureResultBuilder.keyId(sigList.get(0).getKeyID());
}
}