This commit is contained in:
Daniel Gultsch 2014-03-09 12:58:29 +01:00
parent d543d377b7
commit 91130612d4
4 changed files with 21 additions and 27 deletions

View file

@ -610,7 +610,6 @@ public class ConversationFragment extends Fragment {
return false; return false;
} }
try { try {
Log.d("gultsch","calling to decrypt message id #"+params[i].getUuid());
decrypted = activity.xmppConnectionService.getPgpEngine().decrypt(body); decrypted = activity.xmppConnectionService.getPgpEngine().decrypt(body);
} catch (UserInputRequiredException e) { } catch (UserInputRequiredException e) {
askForPassphraseIntent = e.getPendingIntent().getIntentSender(); askForPassphraseIntent = e.getPendingIntent().getIntentSender();

View file

@ -1,5 +1,7 @@
package eu.siacs.conversations.utils; package eu.siacs.conversations.utils;
import android.util.Base64;
public class CryptoHelper { public class CryptoHelper {
final protected static char[] hexArray = "0123456789ABCDEF".toCharArray(); final protected static char[] hexArray = "0123456789ABCDEF".toCharArray();
public static String bytesToHex(byte[] bytes) { public static String bytesToHex(byte[] bytes) {
@ -11,4 +13,22 @@ public class CryptoHelper {
} }
return new String(hexChars); return new String(hexChars);
} }
public static String saslPlain(String username, String password) {
byte[] userBytes = username.getBytes();
int userLenght = userBytes.length;
byte[] passwordBytes = password.getBytes();
byte[] saslBytes = new byte[userBytes.length+passwordBytes.length+2];
saslBytes[0] = 0x0;
for(int i = 1; i < saslBytes.length; ++i) {
if (i<=userLenght) {
saslBytes[i] = userBytes[i-1];
} else if (i==userLenght+1) {
saslBytes[i] = 0x0;
} else {
saslBytes[i] = passwordBytes[i-(userLenght+2)];
}
}
return Base64.encodeToString(saslBytes, Base64.DEFAULT);
}
} }

View file

@ -1,24 +0,0 @@
package eu.siacs.conversations.utils;
import android.util.Base64;
public class SASL {
public static String plain(String username, String password) {
byte[] userBytes = username.getBytes();
int userLenght = userBytes.length;
byte[] passwordBytes = password.getBytes();
byte[] saslBytes = new byte[userBytes.length+passwordBytes.length+2];
saslBytes[0] = 0x0;
for(int i = 1; i < saslBytes.length; ++i) {
if (i<=userLenght) {
saslBytes[i] = userBytes[i-1];
} else if (i==userLenght+1) {
saslBytes[i] = 0x0;
} else {
saslBytes[i] = passwordBytes[i-(userLenght+2)];
}
}
return Base64.encodeToString(saslBytes, Base64.DEFAULT);
}
}

View file

@ -34,7 +34,6 @@ import android.util.Log;
import eu.siacs.conversations.entities.Account; import eu.siacs.conversations.entities.Account;
import eu.siacs.conversations.utils.CryptoHelper; import eu.siacs.conversations.utils.CryptoHelper;
import eu.siacs.conversations.utils.DNSHelper; import eu.siacs.conversations.utils.DNSHelper;
import eu.siacs.conversations.utils.SASL;
import eu.siacs.conversations.xml.Element; import eu.siacs.conversations.xml.Element;
import eu.siacs.conversations.xml.Tag; import eu.siacs.conversations.xml.Tag;
import eu.siacs.conversations.xml.TagWriter; import eu.siacs.conversations.xml.TagWriter;
@ -361,7 +360,7 @@ public class XmppConnection implements Runnable {
} }
private void sendSaslAuth() throws IOException, XmlPullParserException { private void sendSaslAuth() throws IOException, XmlPullParserException {
String saslString = SASL.plain(account.getUsername(), String saslString = CryptoHelper.saslPlain(account.getUsername(),
account.getPassword()); account.getPassword());
Element auth = new Element("auth"); Element auth = new Element("auth");
auth.setAttribute("xmlns", "urn:ietf:params:xml:ns:xmpp-sasl"); auth.setAttribute("xmlns", "urn:ietf:params:xml:ns:xmpp-sasl");