aboutsummaryrefslogtreecommitdiffstats
path: root/src/eu/siacs/conversations/crypto/PgpEngine.java
diff options
context:
space:
mode:
authoriNPUTmice <daniel@gultsch.de>2014-09-03 13:05:22 +0200
committeriNPUTmice <daniel@gultsch.de>2014-09-03 13:06:06 +0200
commitf1494f83ff7dd9c7d0ebdb176d36293f42297988 (patch)
tree6df55144ced57dbb98709f33a0ad5d64ab2d94af /src/eu/siacs/conversations/crypto/PgpEngine.java
parent567827ffcaba46e062a8d087392d780c377d282f (diff)
fixed pgp signature creation
Diffstat (limited to '')
-rw-r--r--src/eu/siacs/conversations/crypto/PgpEngine.java22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/eu/siacs/conversations/crypto/PgpEngine.java b/src/eu/siacs/conversations/crypto/PgpEngine.java
index 65b7ccc7..7b5ef905 100644
--- a/src/eu/siacs/conversations/crypto/PgpEngine.java
+++ b/src/eu/siacs/conversations/crypto/PgpEngine.java
@@ -292,9 +292,25 @@ public class PgpEngine {
switch (result.getIntExtra(OpenPgpApi.RESULT_CODE, 0)) {
case OpenPgpApi.RESULT_CODE_SUCCESS:
StringBuilder signatureBuilder = new StringBuilder();
- String[] lines = os.toString().split("\n");
- for (int i = 7; i < lines.length - 1; ++i) {
- signatureBuilder.append(lines[i].trim());
+ try {
+ os.flush();
+ String[] lines = os.toString().split("\n");
+ boolean sig = false;
+ for(String line : lines) {
+ if (sig) {
+ if (line.contains("END PGP SIGNATURE")) {
+ sig = false;
+ } else {
+ signatureBuilder.append(line.trim());
+ }
+ }
+ if (line.contains("BEGIN PGP SIGNATURE")) {
+ sig = true;
+ }
+ }
+ } catch (IOException e) {
+ callback.error(R.string.openpgp_error, account);
+ return;
}
account.setKey("pgp_signature", signatureBuilder.toString());
callback.success(account);