aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThialfihar <thialfihar@gmail.com>2010-08-15 17:32:08 +0000
committerThialfihar <thialfihar@gmail.com>2010-08-15 17:32:08 +0000
commitbd99b2590b9b619d90ce5ffe36d5526452883cbf (patch)
tree4361314a196beda8b03811db12442efdf4cc1f69
parente6dc9951268e89c776cad141c8ce0d68ea1e559b (diff)
downloadopen-keychain-bd99b2590b9b619d90ce5ffe36d5526452883cbf.tar.gz
open-keychain-bd99b2590b9b619d90ce5ffe36d5526452883cbf.tar.bz2
open-keychain-bd99b2590b9b619d90ce5ffe36d5526452883cbf.zip
1.0.x merged back into trunk
-rw-r--r--AndroidManifest.xml2
-rw-r--r--res/values-da/strings.xml3
-rw-r--r--res/values-de/strings.xml4
-rw-r--r--res/values-it/strings.xml3
-rw-r--r--res/values-sl/strings.xml13
-rw-r--r--res/values/arrays.xml6
-rw-r--r--res/values/strings.xml3
-rw-r--r--src/org/thialfihar/android/apg/Apg.java126
8 files changed, 110 insertions, 50 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index badb84110..a49148f98 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -17,7 +17,7 @@
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="org.thialfihar.android.apg"
- android:versionCode="20" android:versionName="1.0.6">
+ android:versionCode="21" android:versionName="1.0.7">
<application
android:icon="@drawable/icon"
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 5ab838195..582541ee3 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -124,6 +124,9 @@
<string name="choice_3mins">3 min</string>
<string name="choice_5mins">5 min</string>
<string name="choice_10mins">10 min</string>
+ <string name="choice_20mins">20 min</string>
+ <string name="choice_40mins">40 min</string>
+ <string name="choice_60mins">60 min</string>
<string name="choice_untilQuit">Indtil slut</string>
<string name="dsa">DSA</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index cd38204b6..7bc142f26 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -129,8 +129,10 @@
<string name="choice_1min">1 Min.</string>
<string name="choice_3mins">3 Min.</string>
<string name="choice_5mins">5 Min.</string>
-
<string name="choice_10mins">10 Min.</string>
+ <string name="choice_20mins">20 Min.</string>
+ <string name="choice_40mins">40 Min.</string>
+ <string name="choice_60mins">60 Min.</string>
<string name="choice_untilQuit">Bis Programmende</string>
<string name="dsa">DSA</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index b0c827ce9..f80df26e0 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -126,6 +126,9 @@
<string name="choice_3mins">3 min</string>
<string name="choice_5mins">5 min</string>
<string name="choice_10mins">10 min</string>
+ <string name="choice_20mins">20 min</string>
+ <string name="choice_40mins">40 min</string>
+ <string name="choice_60mins">60 min</string>
<string name="choice_untilQuit">tutta la sessione</string>
<string name="dsa">DSA</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index dcb002f8f..d15f6ac05 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -135,6 +135,9 @@
<string name="choice_3mins">3 min</string>
<string name="choice_5mins">5 min</string>
<string name="choice_10mins">10 min</string>
+ <string name="choice_20mins">20 min</string>
+ <string name="choice_40mins">40 min</string>
+ <string name="choice_60mins">60 min</string>
<string name="choice_untilQuit">do izhoda</string>
<string name="choice_language_system">Sistemsko nastavljeno</string>
@@ -270,9 +273,15 @@
<string name="filterInfo">Filter: \"%s\"</string>
<!-- misc -->
+<<<<<<< HEAD
<string name="fast">hitro</string>
<string name="slow">počasi</string>
<string name="very_slow">zelo počasi</string>
+=======
+ <string name="fast">hiter</string>
+ <string name="slow">počasen</string>
+ <string name="very_slow">zelo počasen</string>
+>>>>>>> 1.0.x
<!-- texts -->
<!-- "OI File Manager", "ASTRO", and "K-9 Mail" must not be translated in order for the links to the market to work. -->
@@ -280,7 +289,11 @@
\n\nZaželjeno je, da namestite programa OI File Manager ali ASTRO, ki omogočata iskanje, izbiro in vnos datotek v APG.
\n\nZa začetek potrebujete nekaj ključev. Lahko jih uvozite s klikom na menija \"Upravljanje javnih ključev\" in \"Upravljanje zasebnih ključev\" ali jih ustvarite v meniju \"Upravljanje zasebnih ključev\".
\n\nPreko menija \"Dodaj račun\" lahko dodate vaše GMail račune in tako poenostavite dešifriranje e-pošte prejete nanje.
+<<<<<<< HEAD
\n\nDa bi odkrili dodatne funkcije in zmožnosti programa APG, se sprehodite skozi njegove menije.
+=======
+ \n\Da bi odkrili dodatne funkcije in zmožnosti programa APG, se sprehodite skozi njegove menije.
+>>>>>>> 1.0.x
</string>
</resources>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 4f0dac371..e98d7a193 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -22,6 +22,9 @@
<item>@string/choice_3mins</item>
<item>@string/choice_5mins</item>
<item>@string/choice_10mins</item>
+ <item>@string/choice_20mins</item>
+ <item>@string/choice_40mins</item>
+ <item>@string/choice_60mins</item>
</string-array>
<string-array name="pass_phrase_cache_ttl_values">
@@ -30,6 +33,9 @@
<item>180</item>
<item>300</item>
<item>600</item>
+ <item>1200</item>
+ <item>2400</item>
+ <item>3600</item>
</string-array>
<string-array name="language_entries">
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ad437d725..e7a233b3e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -133,6 +133,9 @@
<string name="choice_3mins">3 mins</string>
<string name="choice_5mins">5 mins</string>
<string name="choice_10mins">10 mins</string>
+ <string name="choice_20mins">20 mins</string>
+ <string name="choice_40mins">40 mins</string>
+ <string name="choice_60mins">60 mins</string>
<string name="choice_untilQuit">until quit</string>
<string name="choice_language_system">System default</string>
diff --git a/src/org/thialfihar/android/apg/Apg.java b/src/org/thialfihar/android/apg/Apg.java
index b9c3ba935..cc8fae4c7 100644
--- a/src/org/thialfihar/android/apg/Apg.java
+++ b/src/org/thialfihar/android/apg/Apg.java
@@ -17,6 +17,7 @@
package org.thialfihar.android.apg;
import java.io.BufferedInputStream;
+import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.EOFException;
@@ -24,6 +25,7 @@ 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.RandomAccessFile;
import java.math.BigInteger;
@@ -1336,35 +1338,33 @@ public class Apg {
armorOut.beginClearText(hashAlgorithm);
- ByteArrayOutputStream lineOut = new ByteArrayOutputStream();
InputStream inStream = data.getInputStream();
- int lookAhead = readInputLine(lineOut, inStream);
+ final BufferedReader reader = new BufferedReader(new InputStreamReader(inStream));
+
+ final byte[] newline = "\r\n".getBytes("UTF-8");
if (forceV3Signature) {
- processLine(armorOut, signatureV3Generator, lineOut.toByteArray());
+ processLine(reader.readLine(), armorOut, signatureV3Generator);
} else {
- processLine(armorOut, signatureGenerator, lineOut.toByteArray());
+ processLine(reader.readLine(), armorOut, signatureGenerator);
}
- if (lookAhead != -1) {
- do {
- lookAhead = readInputLine(lineOut, lookAhead, inStream);
+ while (true) {
+ final String line = reader.readLine();
- if (forceV3Signature) {
- signatureV3Generator.update((byte)'\r');
- signatureV3Generator.update((byte)'\n');
- } else {
- signatureGenerator.update((byte)'\r');
- signatureGenerator.update((byte)'\n');
- }
+ if (line == null) {
+ armorOut.write(newline);
+ break;
+ }
- if (forceV3Signature) {
- processLine(armorOut, signatureV3Generator, lineOut.toByteArray());
- } else {
- processLine(armorOut, signatureGenerator, lineOut.toByteArray());
- }
+ armorOut.write(newline);
+ if (forceV3Signature) {
+ signatureV3Generator.update(newline);
+ processLine(line, armorOut, signatureV3Generator);
+ } else {
+ signatureGenerator.update(newline);
+ processLine(line, armorOut, signatureGenerator);
}
- while (lookAhead != -1);
}
armorOut.endClearText();
@@ -1784,7 +1784,65 @@ public class Apg {
return Id.content.unknown;
}
+ private static void processLine(final String pLine,
+ final ArmoredOutputStream pArmoredOutput,
+ final PGPSignatureGenerator pSignatureGenerator)
+ throws IOException, SignatureException {
+
+ if (pLine == null) {
+ return;
+ }
+
+ final char[] chars = pLine.toCharArray();
+ int len = chars.length;
+
+ while (len > 0) {
+ if (!Character.isWhitespace(chars[len - 1])) {
+ break;
+ }
+ len--;
+ }
+
+ final byte[] data = pLine.substring(0, len).getBytes("UTF-8");
+
+ pArmoredOutput.write(data);
+ pSignatureGenerator.update(data);
+ }
+
+ private static void processLine(final String pLine,
+ final ArmoredOutputStream pArmoredOutput,
+ final PGPV3SignatureGenerator pSignatureGenerator)
+ throws IOException, SignatureException {
+
+ if (pLine == null) {
+ return;
+ }
+
+ final char[] chars = pLine.toCharArray();
+ int len = chars.length;
+
+ while (len > 0) {
+ if (!Character.isWhitespace(chars[len - 1])) {
+ break;
+ }
+ len--;
+ }
+
+ final byte[] data = pLine.substring(0, len).getBytes("UTF-8");
+
+ pArmoredOutput.write(data);
+ pSignatureGenerator.update(data);
+ }
+
// taken from ClearSignedFileProcessor in BC
+ private static void processLine(PGPSignature sig, byte[] line)
+ throws SignatureException, IOException {
+ int length = getLengthWithoutWhiteSpace(line);
+ if (length > 0) {
+ sig.update(line, 0, length);
+ }
+ }
+
private static int readInputLine(ByteArrayOutputStream bOut, InputStream fIn)
throws IOException {
bOut.reset();
@@ -1837,34 +1895,6 @@ public class Apg {
return lookAhead;
}
- private static void processLine(PGPSignature sig, byte[] line)
- throws SignatureException, IOException {
- int length = getLengthWithoutWhiteSpace(line);
- if (length > 0) {
- sig.update(line, 0, length);
- }
- }
-
- private static void processLine(OutputStream aOut, PGPSignatureGenerator sGen, byte[] line)
- throws SignatureException, IOException {
- int length = getLengthWithoutWhiteSpace(line);
- if (length > 0) {
- sGen.update(line, 0, length);
- }
-
- aOut.write(line, 0, line.length);
- }
-
- private static void processLine(OutputStream aOut, PGPV3SignatureGenerator sGen, byte[] line)
- throws SignatureException, IOException {
- int length = getLengthWithoutWhiteSpace(line);
- if (length > 0) {
- sGen.update(line, 0, length);
- }
-
- aOut.write(line, 0, line.length);
-}
-
private static int getLengthWithoutSeparator(byte[] line) {
int end = line.length - 1;