import org.asamk.signal.storage.protocol.JsonIdentityKeyStore;
import org.asamk.signal.util.Hex;
import org.asamk.signal.util.Util;
+import org.whispersystems.libsignal.util.Pair;
+import org.whispersystems.signalservice.api.util.InvalidNumberException;
import java.util.List;
import java.util.Map;
}
} else {
String number = ns.getString("number");
- for (JsonIdentityKeyStore.Identity id : m.getIdentities(number)) {
- printIdentityFingerprint(m, number, id);
+ try {
+ Pair<String, List<JsonIdentityKeyStore.Identity>> key = m.getIdentities(number);
+ for (JsonIdentityKeyStore.Identity id : key.second()) {
+ printIdentityFingerprint(m, key.first(), id);
+ }
+ } catch (InvalidNumberException e) {
+ System.out.println("Invalid number: " + e.getMessage());
}
}
return 0;
import org.whispersystems.libsignal.state.SignedPreKeyRecord;
import org.whispersystems.libsignal.util.KeyHelper;
import org.whispersystems.libsignal.util.Medium;
+import org.whispersystems.libsignal.util.Pair;
import org.whispersystems.libsignal.util.guava.Optional;
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
import org.whispersystems.signalservice.api.SignalServiceMessagePipe;
return account.getSignalProtocolStore().getIdentities();
}
- public List<JsonIdentityKeyStore.Identity> getIdentities(String number) {
- return account.getSignalProtocolStore().getIdentities(number);
+ public Pair<String, List<JsonIdentityKeyStore.Identity>> getIdentities(String number) throws InvalidNumberException {
+ String canonicalizedNumber = Utils.canonicalizeNumber(number, username);
+ return new Pair<>(canonicalizedNumber, account.getSignalProtocolStore().getIdentities(canonicalizedNumber));
}
/**