1package eu.siacs.conversations.crypto.sasl;
2
3import android.util.Base64;
4
5import java.nio.charset.Charset;
6
7import eu.siacs.conversations.entities.Account;
8import eu.siacs.conversations.xml.TagWriter;
9
10public class Plain extends SaslMechanism {
11
12 public static final String MECHANISM = "PLAIN";
13
14 public Plain(final TagWriter tagWriter, final Account account) {
15 super(tagWriter, account, null);
16 }
17
18 @Override
19 public int getPriority() {
20 return 10;
21 }
22
23 @Override
24 public String getMechanism() {
25 return MECHANISM;
26 }
27
28 @Override
29 public String getClientFirstMessage() {
30 return getMessage(account.getUsername(), account.getPassword());
31 }
32
33 public static String getMessage(String username, String password) {
34 final String message = '\u0000' + username + '\u0000' + password;
35 return Base64.encodeToString(message.getBytes(Charset.defaultCharset()), Base64.NO_WRAP);
36 }
37}