diff options
Diffstat (limited to 'OpenKeychain/src/main')
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(); +    }  } | 
