diff options
author | Thialfihar <thialfihar@gmail.com> | 2010-04-29 01:38:19 +0000 |
---|---|---|
committer | Thialfihar <thialfihar@gmail.com> | 2010-04-29 01:38:19 +0000 |
commit | 5cf07b4a039bb4b03ced54a9d3d939ec7c1cad7c (patch) | |
tree | b88b16d641c18b8a887e0aa11b263a02f4d5007b /src/org/thialfihar/android/apg/DecryptFileActivity.java | |
parent | a03781545413d65182b911a1d61fe71595544ac4 (diff) | |
download | open-keychain-5cf07b4a039bb4b03ced54a9d3d939ec7c1cad7c.tar.gz open-keychain-5cf07b4a039bb4b03ced54a9d3d939ec7c1cad7c.tar.bz2 open-keychain-5cf07b4a039bb4b03ced54a9d3d939ec7c1cad7c.zip |
only allow asymmetric encryption or symmetric encryption of files, not both like before
Diffstat (limited to 'src/org/thialfihar/android/apg/DecryptFileActivity.java')
-rw-r--r-- | src/org/thialfihar/android/apg/DecryptFileActivity.java | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/org/thialfihar/android/apg/DecryptFileActivity.java b/src/org/thialfihar/android/apg/DecryptFileActivity.java index 8e21eae11..49f039423 100644 --- a/src/org/thialfihar/android/apg/DecryptFileActivity.java +++ b/src/org/thialfihar/android/apg/DecryptFileActivity.java @@ -129,18 +129,23 @@ public class DecryptFileActivity extends BaseActivity { try {
InputStream in = new FileInputStream(mInputFilename);
- setSecretKeyId(Apg.getDecryptionKeyId(in));
- if (getSecretKeyId() == 0) {
+ try {
+ setSecretKeyId(Apg.getDecryptionKeyId(in));
+ if (getSecretKeyId() == 0) {
+ throw new Apg.GeneralException("no suitable keys found");
+ }
+ mAssumeSymmetricEncryption = false;
+ } catch (Apg.NoAsymmetricEncryptionException e) {
+ setSecretKeyId(0);
// reopen the file to check whether there's symmetric encryption data in there
in = new FileInputStream(mInputFilename);
if (!Apg.hasSymmetricEncryption(in)) {
- throw new Apg.GeneralException("no suitable keys found");
+ throw new Apg.GeneralException("no known kind of encryption found");
}
mAssumeSymmetricEncryption = true;
- } else {
- mAssumeSymmetricEncryption = false;
- }
- showDialog(Id.dialog.pass_phrase);
+ }
+
+ showDialog(Id.dialog.pass_phrase);
} catch (FileNotFoundException e) {
error = "file not found: " + e.getLocalizedMessage();
} catch (IOException e) {
|