aboutsummaryrefslogtreecommitdiffstats
path: root/src/eu/siacs/conversations/crypto
diff options
context:
space:
mode:
authoriNPUTmice <daniel@gultsch.de>2014-09-03 13:05:22 +0200
committeriNPUTmice <daniel@gultsch.de>2014-09-03 13:05:22 +0200
commit5ae62f18b4202dcb49b19964ade46e203eefc917 (patch)
treed2077444913b962392a2dd743c854b0550e047a0 /src/eu/siacs/conversations/crypto
parent1a09a4706b7cc53225abd5c6124f3da2f784ad61 (diff)
fixed pgp signature creation
Diffstat (limited to 'src/eu/siacs/conversations/crypto')
-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 430aaf99b..71282c445 100644
--- a/src/eu/siacs/conversations/crypto/PgpEngine.java
+++ b/src/eu/siacs/conversations/crypto/PgpEngine.java
@@ -295,9 +295,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);