remove white space before parsing omemo bundle base64
This commit is contained in:
parent
285c750e69
commit
abfa4eae08
|
@ -5,6 +5,7 @@ import android.text.TextUtils;
|
|||
import android.util.Log;
|
||||
import android.util.Pair;
|
||||
|
||||
import com.google.common.base.CharMatcher;
|
||||
import com.google.common.io.BaseEncoding;
|
||||
|
||||
import org.whispersystems.libsignal.IdentityKey;
|
||||
|
@ -206,7 +207,7 @@ public class IqParser extends AbstractParser implements OnIqPacketReceived {
|
|||
return null;
|
||||
}
|
||||
try {
|
||||
publicKey = Curve.decodePoint(BaseEncoding.base64().decode(signedPreKeyPublic), 0);
|
||||
publicKey = Curve.decodePoint(base64decode(signedPreKeyPublic), 0);
|
||||
} catch (final IllegalArgumentException | InvalidKeyException e) {
|
||||
Log.e(Config.LOGTAG, AxolotlService.LOGPREFIX + " : " + "Invalid signedPreKeyPublic in PEP: " + e.getMessage());
|
||||
}
|
||||
|
@ -219,7 +220,7 @@ public class IqParser extends AbstractParser implements OnIqPacketReceived {
|
|||
return null;
|
||||
}
|
||||
try {
|
||||
return BaseEncoding.base64().decode(signedPreKeySignature);
|
||||
return base64decode(signedPreKeySignature);
|
||||
} catch (final IllegalArgumentException e) {
|
||||
Log.e(Config.LOGTAG, AxolotlService.LOGPREFIX + " : Invalid base64 in signedPreKeySignature");
|
||||
return null;
|
||||
|
@ -232,7 +233,7 @@ public class IqParser extends AbstractParser implements OnIqPacketReceived {
|
|||
return null;
|
||||
}
|
||||
try {
|
||||
return new IdentityKey(BaseEncoding.base64().decode(identityKey), 0);
|
||||
return new IdentityKey(base64decode(identityKey), 0);
|
||||
} catch (final IllegalArgumentException | InvalidKeyException e) {
|
||||
Log.e(Config.LOGTAG, AxolotlService.LOGPREFIX + " : " + "Invalid identityKey in PEP: " + e.getMessage());
|
||||
return null;
|
||||
|
@ -260,10 +261,14 @@ public class IqParser extends AbstractParser implements OnIqPacketReceived {
|
|||
Log.d(Config.LOGTAG, AxolotlService.LOGPREFIX + " : " + "Encountered unexpected tag in prekeys list: " + preKeyPublicElement);
|
||||
continue;
|
||||
}
|
||||
final String preKey = preKeyPublicElement.getContent();
|
||||
if (preKey == null) {
|
||||
continue;
|
||||
}
|
||||
Integer preKeyId = null;
|
||||
try {
|
||||
preKeyId = Integer.valueOf(preKeyPublicElement.getAttribute("preKeyId"));
|
||||
final ECPublicKey preKeyPublic = Curve.decodePoint(BaseEncoding.base64().decode(preKeyPublicElement.getContent()), 0);
|
||||
final ECPublicKey preKeyPublic = Curve.decodePoint(base64decode(preKey), 0);
|
||||
preKeyRecords.put(preKeyId, preKeyPublic);
|
||||
} catch (NumberFormatException e) {
|
||||
Log.e(Config.LOGTAG, AxolotlService.LOGPREFIX + " : " + "could not parse preKeyId from preKey " + preKeyPublicElement.toString());
|
||||
|
@ -274,6 +279,10 @@ public class IqParser extends AbstractParser implements OnIqPacketReceived {
|
|||
return preKeyRecords;
|
||||
}
|
||||
|
||||
private static byte[] base64decode(String input) {
|
||||
return BaseEncoding.base64().decode(CharMatcher.whitespace().removeFrom(input));
|
||||
}
|
||||
|
||||
public Pair<X509Certificate[], byte[]> verification(final IqPacket packet) {
|
||||
Element item = getItem(packet);
|
||||
Element verification = item != null ? item.findChild("verification", AxolotlService.PEP_PREFIX) : null;
|
||||
|
|
Loading…
Reference in a new issue