From 5cf07b4a039bb4b03ced54a9d3d939ec7c1cad7c Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Thu, 29 Apr 2010 01:38:19 +0000 Subject: only allow asymmetric encryption or symmetric encryption of files, not both like before --- .../thialfihar/android/apg/DecryptFileActivity.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'src/org/thialfihar/android/apg/DecryptFileActivity.java') 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) { -- cgit v1.2.3