From e7cbf975acf180dd1811fb1f323d604e928e215e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 1 Oct 2014 14:14:50 +0200 Subject: More debugging output --- .../keychain/pgp/PgpDecryptVerify.java | 53 ++++++++++++---------- .../keychain/service/KeychainIntentService.java | 2 +- .../keychain/ui/DecryptTextActivity.java | 4 ++ .../org/sufficientlysecure/keychain/util/Log.java | 45 ++++++++++++++++++ 4 files changed, 79 insertions(+), 25 deletions(-) (limited to 'OpenKeychain/src/main/java') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java index b529c4309..06488af44 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java @@ -199,10 +199,12 @@ public class PgpDecryptVerify { return decryptVerify(in, 0); } catch (PGPException e) { + Log.d(Constants.TAG, "PGPException", e); OperationLog log = new OperationLog(); log.add(LogType.MSG_DC_ERROR_PGP_EXCEPTION, 1); return new DecryptVerifyResult(DecryptVerifyResult.RESULT_ERROR, log); } catch (IOException e) { + Log.d(Constants.TAG, "IOException", e); OperationLog log = new OperationLog(); log.add(LogType.MSG_DC_ERROR_IO, 1); return new DecryptVerifyResult(DecryptVerifyResult.RESULT_ERROR, log); @@ -754,38 +756,41 @@ public class PgpDecryptVerify { } } - if (signature != null) try { - updateProgress(R.string.progress_verifying_signature, 90, 100); - log.add(LogType.MSG_DC_CLEAR_SIGNATURE_CHECK, indent); + if (signature != null) { + try { + updateProgress(R.string.progress_verifying_signature, 90, 100); + log.add(LogType.MSG_DC_CLEAR_SIGNATURE_CHECK, indent); - InputStream sigIn = new BufferedInputStream(new ByteArrayInputStream(clearText)); + InputStream sigIn = new BufferedInputStream(new ByteArrayInputStream(clearText)); - lookAhead = readInputLine(lineOut, sigIn); + lookAhead = readInputLine(lineOut, sigIn); - processLine(signature, lineOut.toByteArray()); + processLine(signature, lineOut.toByteArray()); - if (lookAhead != -1) { - do { - lookAhead = readInputLine(lineOut, lookAhead, sigIn); + if (lookAhead != -1) { + do { + lookAhead = readInputLine(lineOut, lookAhead, sigIn); - signature.update((byte) '\r'); - signature.update((byte) '\n'); + signature.update((byte) '\r'); + signature.update((byte) '\n'); - processLine(signature, lineOut.toByteArray()); - } while (lookAhead != -1); - } + processLine(signature, lineOut.toByteArray()); + } while (lookAhead != -1); + } - // Verify signature and check binding signatures - boolean validSignature = signature.verify(); - if (validSignature) { - log.add(LogType.MSG_DC_CLEAR_SIGNATURE_OK, indent +1); - } else { - log.add(LogType.MSG_DC_CLEAR_SIGNATURE_BAD, indent +1); - } - signatureResultBuilder.setValidSignature(validSignature); + // Verify signature and check binding signatures + boolean validSignature = signature.verify(); + if (validSignature) { + log.add(LogType.MSG_DC_CLEAR_SIGNATURE_OK, indent + 1); + } else { + log.add(LogType.MSG_DC_CLEAR_SIGNATURE_BAD, indent + 1); + } + signatureResultBuilder.setValidSignature(validSignature); - } catch (SignatureException e) { - return new DecryptVerifyResult(DecryptVerifyResult.RESULT_ERROR, log); + } catch (SignatureException e) { + Log.d(Constants.TAG, "SignatureException", e); + return new DecryptVerifyResult(DecryptVerifyResult.RESULT_ERROR, log); + } } updateProgress(R.string.progress_done, 100, 100); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java index 971df8ea2..bb966fec8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java @@ -782,7 +782,7 @@ public class KeychainIntentService extends IntentService implements Progressable message = e.getMessage(); } - Log.e(Constants.TAG, "KeychainIntentService Exception: ", e); + Log.d(Constants.TAG, "KeychainIntentService Exception: ", e); Bundle data = new Bundle(); data.putString(KeychainIntentServiceHandler.DATA_ERROR, message); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptTextActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptTextActivity.java index 9271f146c..982bed784 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptTextActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptTextActivity.java @@ -32,7 +32,9 @@ import org.sufficientlysecure.keychain.service.results.SingletonResult; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.ui.util.Notify; +import java.io.StreamTokenizer; import java.util.regex.Matcher; +import java.util.regex.Pattern; public class DecryptTextActivity extends ActionBarActivity { @@ -117,7 +119,9 @@ public class DecryptTextActivity extends ActionBarActivity { // When sending to Keychain Decrypt via share menu if ("text/plain".equals(type)) { String sharedText = extras.getString(Intent.EXTRA_TEXT); + Log.dEscaped(Constants.TAG, "sharedText incoming: " + sharedText); sharedText = getPgpContent(sharedText); + Log.dEscaped(Constants.TAG, "sharedText fixed: " + sharedText); if (sharedText != null) { loadFragment(savedInstanceState, sharedText); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Log.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Log.java index 4dda74ace..b4f7c5767 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Log.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Log.java @@ -21,6 +21,9 @@ import android.os.Bundle; import org.sufficientlysecure.keychain.Constants; +import java.io.IOException; +import java.io.StreamTokenizer; +import java.io.StringReader; import java.util.Iterator; import java.util.Set; @@ -53,6 +56,18 @@ public final class Log { } } + public static void dEscaped(String tag, String msg) { + if (Constants.DEBUG) { + android.util.Log.d(tag, removeUnicodeAndEscapeChars(msg)); + } + } + + public static void dEscaped(String tag, String msg, Throwable tr) { + if (Constants.DEBUG) { + android.util.Log.d(tag, removeUnicodeAndEscapeChars(msg), tr); + } + } + public static void i(String tag, String msg) { if (Constants.DEBUG) { android.util.Log.i(tag, msg); @@ -116,4 +131,34 @@ public final class Log { } } } + + public static String removeUnicodeAndEscapeChars(String input) { + StringBuilder buffer = new StringBuilder(input.length()); + for (int i = 0; i < input.length(); i++) { + if ((int) input.charAt(i) > 256) { + buffer.append("\\u").append(Integer.toHexString((int) input.charAt(i))); + } else { + if (input.charAt(i) == '\n') { + buffer.append("\\n"); + } else if (input.charAt(i) == '\t') { + buffer.append("\\t"); + } else if (input.charAt(i) == '\r') { + buffer.append("\\r"); + } else if (input.charAt(i) == '\b') { + buffer.append("\\b"); + } else if (input.charAt(i) == '\f') { + buffer.append("\\f"); + } else if (input.charAt(i) == '\'') { + buffer.append("\\'"); + } else if (input.charAt(i) == '\"') { + buffer.append("\\"); + } else if (input.charAt(i) == '\\') { + buffer.append("\\\\"); + } else { + buffer.append(input.charAt(i)); + } + } + } + return buffer.toString(); + } } -- cgit v1.2.3