diff options
author | Vincent <valodim@mugenguild.com> | 2016-04-12 10:13:30 +0200 |
---|---|---|
committer | Vincent <valodim@mugenguild.com> | 2016-04-12 10:13:30 +0200 |
commit | b55c505054cf68369ed3f123a1793b7c1e451cb7 (patch) | |
tree | b78472ea87584885b7b82230fbc96d4d6720befa /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util | |
parent | 8efef3d248ad86400d66c682bde62fe93e50323b (diff) | |
parent | 360b5a658a412d9402a5fc9ea204329c91d306c3 (diff) | |
download | open-keychain-b55c505054cf68369ed3f123a1793b7c1e451cb7.tar.gz open-keychain-b55c505054cf68369ed3f123a1793b7c1e451cb7.tar.bz2 open-keychain-b55c505054cf68369ed3f123a1793b7c1e451cb7.zip |
Merge pull request #1772 from runnerway/importkey-encrypted
Handle encrypted files in "import key" file selection
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"}; |