diff options
author | Andrea Torlaschi <runnerway@gmail.com> | 2016-03-11 00:50:11 +0100 |
---|---|---|
committer | Andrea Torlaschi <runnerway@gmail.com> | 2016-03-27 18:20:29 +0200 |
commit | 360b5a658a412d9402a5fc9ea204329c91d306c3 (patch) | |
tree | b5f4ea67bd27c9d22e69446f79415a37a2262cbc /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util | |
parent | 0ce989ef1840a1a60cabf48d8bc5a00d5d3591f3 (diff) | |
download | open-keychain-360b5a658a412d9402a5fc9ea204329c91d306c3.tar.gz open-keychain-360b5a658a412d9402a5fc9ea204329c91d306c3.tar.bz2 open-keychain-360b5a658a412d9402a5fc9ea204329c91d306c3.zip |
Handle encrypted files while importing keys
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/FileHelper.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/FileHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/FileHelper.java index 106775201..62dd87baa 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/FileHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/FileHelper.java @@ -20,11 +20,13 @@ package org.sufficientlysecure.keychain.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; +import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.security.SecureRandom; @@ -223,6 +225,31 @@ public class FileHelper { } } + public static boolean isEncryptedFile(Context context, Uri uri) throws IOException { + boolean isEncrypted = false; + + BufferedReader br = null; + try { + InputStream is = context.getContentResolver().openInputStream(uri); + br = new BufferedReader(new InputStreamReader(is)); + + String header = "-----BEGIN PGP MESSAGE-----"; + int length = header.length(); + char[] buffer = new char[length]; + if (br.read(buffer, 0, length) == length) { + isEncrypted = new String(buffer).equals(header); + } + } finally { + try { + if (br != null) + br.close(); + } catch (IOException e) { + Log.e(Constants.TAG, "Error closing file", e); + } + } + return isEncrypted; + } + public static String readableFileSize(long size) { if (size <= 0) return "0"; final String[] units = new String[]{"B", "KB", "MB", "GB", "TB"}; |