mirror of
https://github.com/vanitasvitae/Smack.git
synced 2024-11-14 00:02:05 +01:00
OMEMO: converse.js compatibility
This commit is contained in:
parent
3e74d11b45
commit
9f86eda532
3 changed files with 19 additions and 14 deletions
|
@ -222,6 +222,10 @@ public class StringUtils {
|
|||
return out;
|
||||
}
|
||||
|
||||
public static String removeNewLines(String s) {
|
||||
return s.trim().replaceAll("\n", "");
|
||||
}
|
||||
|
||||
/**
|
||||
* Hashes a String using the SHA-1 algorithm and returns the result as a
|
||||
* String of hexadecimal numbers. This method is synchronized to avoid
|
||||
|
|
|
@ -60,8 +60,8 @@ public abstract class OmemoBundleElement implements ExtensionElement {
|
|||
* @param preKeysB64 HashMap of base64 encoded preKeys
|
||||
*/
|
||||
public OmemoBundleElement(int signedPreKeyId, String signedPreKeyB64, String signedPreKeySigB64, String identityKeyB64, HashMap<Integer, String> preKeysB64) {
|
||||
if (signedPreKeyId <= 0) {
|
||||
throw new IllegalArgumentException("signedPreKeyId MUST be greater than 0.");
|
||||
if (signedPreKeyId < 0) {
|
||||
throw new IllegalArgumentException("signedPreKeyId MUST be greater than or equal to 0.");
|
||||
}
|
||||
this.signedPreKeyId = signedPreKeyId;
|
||||
this.signedPreKeyB64 = StringUtils.requireNotNullNorEmpty(signedPreKeyB64, "signedPreKeyB64 MUST NOT be null nor empty.");
|
||||
|
|
|
@ -30,6 +30,7 @@ import java.util.HashMap;
|
|||
|
||||
import org.jivesoftware.smack.packet.XmlEnvironment;
|
||||
import org.jivesoftware.smack.provider.ExtensionElementProvider;
|
||||
import org.jivesoftware.smack.util.StringUtils;
|
||||
import org.jivesoftware.smack.xml.XmlPullParser;
|
||||
import org.jivesoftware.smack.xml.XmlPullParserException;
|
||||
|
||||
|
@ -59,39 +60,39 @@ public class OmemoBundleVAxolotlProvider extends ExtensionElementProvider<OmemoB
|
|||
case START_ELEMENT:
|
||||
final int attributeCount = parser.getAttributeCount();
|
||||
// <signedPreKeyPublic>
|
||||
if (name.equals(SIGNED_PRE_KEY_PUB)) {
|
||||
if (SIGNED_PRE_KEY_PUB.equals(name)) {
|
||||
for (int i = 0; i < attributeCount; i++) {
|
||||
if (parser.getAttributeName(i).equals(SIGNED_PRE_KEY_ID)) {
|
||||
if (SIGNED_PRE_KEY_ID.equals(parser.getAttributeName(i))) {
|
||||
int id = Integer.parseInt(parser.getAttributeValue(i));
|
||||
signedPreKey = parser.nextText();
|
||||
signedPreKey = StringUtils.removeNewLines(parser.nextText());
|
||||
signedPreKeyId = id;
|
||||
}
|
||||
}
|
||||
}
|
||||
// <bundleGetSignedPreKeySignature>
|
||||
else if (name.equals(SIGNED_PRE_KEY_SIG)) {
|
||||
signedPreKeySignature = parser.nextText();
|
||||
else if (SIGNED_PRE_KEY_SIG.equals(name)) {
|
||||
signedPreKeySignature = StringUtils.removeNewLines(parser.nextText());
|
||||
}
|
||||
// <deserializeIdentityKey>
|
||||
else if (name.equals(IDENTITY_KEY)) {
|
||||
identityKey = parser.nextText();
|
||||
else if (IDENTITY_KEY.equals(name)) {
|
||||
identityKey = StringUtils.removeNewLines(parser.nextText());
|
||||
}
|
||||
// <deserializeECPublicKeys>
|
||||
else if (name.equals(PRE_KEYS)) {
|
||||
else if (PRE_KEYS.equals(name)) {
|
||||
inPreKeys = true;
|
||||
}
|
||||
// <preKeyPublic preKeyId='424242'>
|
||||
else if (inPreKeys && name.equals(PRE_KEY_PUB)) {
|
||||
else if (inPreKeys && PRE_KEY_PUB.equals(name)) {
|
||||
for (int i = 0; i < attributeCount; i++) {
|
||||
if (parser.getAttributeName(i).equals(PRE_KEY_ID)) {
|
||||
if (PRE_KEY_ID.equals(parser.getAttributeName(i))) {
|
||||
preKeys.put(Integer.parseInt(parser.getAttributeValue(i)),
|
||||
parser.nextText());
|
||||
StringUtils.removeNewLines(parser.nextText()));
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case END_ELEMENT:
|
||||
if (name.equals(BUNDLE)) {
|
||||
if (BUNDLE.equals(name)) {
|
||||
stop = true;
|
||||
}
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue