aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel@gultsch.de>2014-03-08 00:31:29 +0100
committerDaniel Gultsch <daniel@gultsch.de>2014-03-08 00:31:29 +0100
commit5955da3519787bd2b0c6d5b1cc879137f4e946da (patch)
tree001c0957704e18480f99d471cd4500ad76aed870
parent100059b530ad80f20a98c29af57c88d29c4eeabf (diff)
fixed a couple of pgp bugs
-rw-r--r--res/layout/activity_contact_details.xml13
-rw-r--r--src/eu/siacs/conversations/crypto/PgpEngine.java17
-rw-r--r--src/eu/siacs/conversations/services/XmppConnectionService.java4
-rw-r--r--src/eu/siacs/conversations/ui/XmppActivity.java2
4 files changed, 22 insertions, 14 deletions
diff --git a/res/layout/activity_contact_details.xml b/res/layout/activity_contact_details.xml
index 1c38f4a3..cfa77a4d 100644
--- a/res/layout/activity_contact_details.xml
+++ b/res/layout/activity_contact_details.xml
@@ -1,9 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:orientation="vertical"
- android:background="#e5e5e5">
+ android:background="#e5e5e5">
+
+<LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
<TextView
style="@style/sectionHeader"
@@ -107,4 +111,5 @@
android:showDividers="middle">
</LinearLayout>
-</LinearLayout> \ No newline at end of file
+</LinearLayout>
+</ScrollView> \ No newline at end of file
diff --git a/src/eu/siacs/conversations/crypto/PgpEngine.java b/src/eu/siacs/conversations/crypto/PgpEngine.java
index 5e480ae5..fa5a93b3 100644
--- a/src/eu/siacs/conversations/crypto/PgpEngine.java
+++ b/src/eu/siacs/conversations/crypto/PgpEngine.java
@@ -40,7 +40,6 @@ public class PgpEngine {
}
public String encrypt(long keyId, String message) {
- Log.d("xmppService","encrypt message: "+message+" for key "+keyId);
long[] keys = {keyId};
Intent params = new Intent();
params.setAction(OpenPgpApi.ACTION_ENCRYPT);
@@ -51,8 +50,6 @@ public class PgpEngine {
ByteArrayOutputStream os = new ByteArrayOutputStream();
Intent result = api.executeApi(params, is, os);
StringBuilder encryptedMessageBody = new StringBuilder();
- Log.d("xmppService","intent: "+result.toString());
- Log.d("xmppService","output: "+os.toString());
String[] lines = os.toString().split("\n");
for (int i = 3; i < lines.length - 1; ++i) {
encryptedMessageBody.append(lines[i].trim());
@@ -62,11 +59,15 @@ public class PgpEngine {
public long fetchKeyId(String status, String signature)
throws OpenPgpException {
+ if (signature==null) {
+ return 0;
+ }
+ if (status==null) {
+ status="";
+ }
StringBuilder pgpSig = new StringBuilder();
pgpSig.append("-----BEGIN PGP SIGNED MESSAGE-----");
pgpSig.append('\n');
- pgpSig.append("Hash: SHA1");
- pgpSig.append('\n');
pgpSig.append('\n');
pgpSig.append(status);
pgpSig.append('\n');
@@ -86,7 +87,11 @@ public class PgpEngine {
case OpenPgpApi.RESULT_CODE_SUCCESS:
OpenPgpSignatureResult sigResult
= result.getParcelableExtra(OpenPgpApi.RESULT_SIGNATURE);
- return sigResult.getKeyId();
+ if (sigResult==null) {
+ return 0;
+ } else {
+ return sigResult.getKeyId();
+ }
case OpenPgpApi.RESULT_CODE_USER_INTERACTION_REQUIRED:
break;
case OpenPgpApi.RESULT_CODE_ERROR:
diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java
index c6af9d1d..d0a879b4 100644
--- a/src/eu/siacs/conversations/services/XmppConnectionService.java
+++ b/src/eu/siacs/conversations/services/XmppConnectionService.java
@@ -253,7 +253,6 @@ public class XmppConnectionService extends Service {
if ((x != null)
&& (x.getAttribute("xmlns").equals("jabber:x:signed"))) {
try {
- Log.d(LOGTAG,"pgp signature for contact" +packet.getAttribute("from"));
contact.setPgpKeyId(pgp.fetchKeyId(packet.findChild("status")
.getContent(), x.getContent()));
} catch (OpenPgpException e) {
@@ -287,7 +286,7 @@ public class XmppConnectionService extends Service {
// TODO: ask user to handle it maybe
}
} else {
- //Log.d(LOGTAG, packet.toString());
+ Log.d(LOGTAG, packet.toString());
}
replaceContactInConversation(contact.getJid(), contact);
}
@@ -508,7 +507,6 @@ public class XmppConnectionService extends Service {
x.setContent(this.getPgpEngine().encrypt(keyId,
message.getBody()));
packet.addChild(x);
- Log.d(LOGTAG,"pgp message"+packet.toString());
account.getXmppConnection().sendMessagePacket(packet);
message.setStatus(Message.STATUS_SEND);
message.setEncryption(Message.ENCRYPTION_DECRYPTED);
diff --git a/src/eu/siacs/conversations/ui/XmppActivity.java b/src/eu/siacs/conversations/ui/XmppActivity.java
index c1b64f22..18df6f5b 100644
--- a/src/eu/siacs/conversations/ui/XmppActivity.java
+++ b/src/eu/siacs/conversations/ui/XmppActivity.java
@@ -71,7 +71,7 @@ public abstract class XmppActivity extends Activity {
if (xmppConnectionService.getPgpEngine()!=null) {
return true;
} else {
- Builder builder = new AlertDialog.Builder(getApplicationContext());
+ Builder builder = new AlertDialog.Builder(this);
builder.setTitle("OpenKeychain not found");
builder.setIconAttribute(android.R.attr.alertDialogIcon);
builder.setMessage("Please make sure you have installed OpenKeychain");