aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-10-01 14:14:50 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-10-01 14:14:50 +0200
commite7cbf975acf180dd1811fb1f323d604e928e215e (patch)
tree20407f9b5685adc0fd4fbbeab6f238cd4177ea5e
parentf841203f5f9a06f96f15219b2053237e7fc62ba8 (diff)
downloadopen-keychain-e7cbf975acf180dd1811fb1f323d604e928e215e.tar.gz
open-keychain-e7cbf975acf180dd1811fb1f323d604e928e215e.tar.bz2
open-keychain-e7cbf975acf180dd1811fb1f323d604e928e215e.zip
More debugging output
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java53
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java2
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptTextActivity.java4
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Log.java45
4 files changed, 79 insertions, 25 deletions
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();
+ }
}