From ad6ac28782450c3b6f55fd7ae3c7a96b9a667b89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 16 Apr 2014 00:18:00 +0200 Subject: Fix SIGNATURE_UNKNOWN_PUB_KEY --- .../sufficientlysecure/keychain/pgp/PgpDecryptVerify.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java') 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()); } } -- cgit v1.2.3