package org.asamk.signal.manager;
import org.asamk.signal.manager.api.InvalidDeviceLinkException;
-import org.whispersystems.libsignal.InvalidKeyException;
-import org.whispersystems.libsignal.ecc.Curve;
-import org.whispersystems.libsignal.ecc.ECPublicKey;
+import org.asamk.signal.manager.util.Utils;
+import org.signal.libsignal.protocol.InvalidKeyException;
+import org.signal.libsignal.protocol.ecc.Curve;
+import org.signal.libsignal.protocol.ecc.ECPublicKey;
import java.net.URI;
import java.net.URISyntaxException;
-import java.net.URLDecoder;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
-import java.util.HashMap;
-import java.util.Map;
import static org.whispersystems.signalservice.internal.util.Util.isEmpty;
throw new RuntimeException("Invalid device link uri");
}
- var query = getQueryMap(rawQuery);
+ var query = Utils.getQueryMap(rawQuery);
var deviceIdentifier = query.get("uuid");
var publicKeyEncoded = query.get("pub_key");
return new DeviceLinkInfo(deviceIdentifier, deviceKey);
}
- private static Map<String, String> getQueryMap(String query) {
- var params = query.split("&");
- var map = new HashMap<String, String>();
- for (var param : params) {
- final var paramParts = param.split("=");
- var name = URLDecoder.decode(paramParts[0], StandardCharsets.UTF_8);
- var value = URLDecoder.decode(paramParts[1], StandardCharsets.UTF_8);
- map.put(name, value);
- }
- return map;
- }
-
public URI createDeviceLinkUri() {
final var deviceKeyString = Base64.getEncoder().encodeToString(deviceKey.serialize()).replace("=", "");
try {