diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2015-08-12 16:21:08 +0200 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2015-08-12 16:21:08 +0200 |
commit | d6c51603c235f5ae7b3135fb75661ef909bdb6f3 (patch) | |
tree | 14d1c49735f43017b8c50445fdcd8a69bb3823a0 /OpenKeychain/src/main/java | |
parent | 3a5ea0f13527bd379c1e909907449f076eb69af9 (diff) | |
parent | a7392eb99d4393382f8b0553853fd1a163403fba (diff) | |
download | open-keychain-d6c51603c235f5ae7b3135fb75661ef909bdb6f3.tar.gz open-keychain-d6c51603c235f5ae7b3135fb75661ef909bdb6f3.tar.bz2 open-keychain-d6c51603c235f5ae7b3135fb75661ef909bdb6f3.zip |
Merge branch 'master' of github.com:open-keychain/open-keychain
Diffstat (limited to 'OpenKeychain/src/main/java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java index 86c4f3597..ea016c657 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java @@ -594,11 +594,27 @@ public class OpenPgpService extends RemoteService { result.putExtra(OpenPgpApi.RESULT_SIGNATURE, (Parcelable[]) null); } - OpenPgpDecryptionResult decryptionResult = pgpResult.getDecryptionResult(); - if (decryptionResult.getResult() != OpenPgpDecryptionResult.RESULT_ENCRYPTED - && signatureResult.getResult() != OpenPgpSignatureResult.RESULT_NO_SIGNATURE) { - // not encrypted and signed, set deprecated signatureOnly variable - signatureResult.setSignatureOnly(true); + // OpenPgpDecryptionResult does not exist in API < 8 + { + OpenPgpDecryptionResult decryptionResult = pgpResult.getDecryptionResult(); + + // case RESULT_NOT_ENCRYPTED, but a signature, fallback to deprecated signatureOnly variable + if (decryptionResult.getResult() == OpenPgpDecryptionResult.RESULT_NOT_ENCRYPTED + && signatureResult.getResult() != OpenPgpSignatureResult.RESULT_NO_SIGNATURE) { + signatureResult.setSignatureOnly(true); + } + + // case RESULT_INSECURE, fallback to an error + if (decryptionResult.getResult() == OpenPgpDecryptionResult.RESULT_INSECURE) { + Intent resultError = new Intent(); + resultError.putExtra(OpenPgpApi.RESULT_ERROR, new OpenPgpError(OpenPgpError.GENERIC_ERROR, + "Insecure encryption: An outdated algorithm has been used!")); + resultError.putExtra(OpenPgpApi.RESULT_CODE, OpenPgpApi.RESULT_CODE_ERROR); + return resultError; + } + + // case RESULT_ENCRYPTED + // nothing to do! } } |