From: AsamK Date: Tue, 21 Jan 2020 21:09:21 +0000 (+0100) Subject: Canonicalize number when listing identities X-Git-Tag: v0.6.6~39 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/7f9379f78bf310febd57d5d6521ee9c1b5c6732f Canonicalize number when listing identities --- diff --git a/src/main/java/org/asamk/signal/commands/ListIdentitiesCommand.java b/src/main/java/org/asamk/signal/commands/ListIdentitiesCommand.java index 14250eea..dd3e5e46 100644 --- a/src/main/java/org/asamk/signal/commands/ListIdentitiesCommand.java +++ b/src/main/java/org/asamk/signal/commands/ListIdentitiesCommand.java @@ -7,6 +7,8 @@ import org.asamk.signal.manager.Manager; 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; @@ -39,8 +41,13 @@ public class ListIdentitiesCommand implements LocalCommand { } } else { String number = ns.getString("number"); - for (JsonIdentityKeyStore.Identity id : m.getIdentities(number)) { - printIdentityFingerprint(m, number, id); + try { + Pair> 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; diff --git a/src/main/java/org/asamk/signal/manager/Manager.java b/src/main/java/org/asamk/signal/manager/Manager.java index 50da5f23..37091ad0 100644 --- a/src/main/java/org/asamk/signal/manager/Manager.java +++ b/src/main/java/org/asamk/signal/manager/Manager.java @@ -53,6 +53,7 @@ import org.whispersystems.libsignal.state.PreKeyRecord; 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; @@ -1545,8 +1546,9 @@ public class Manager implements Signal { return account.getSignalProtocolStore().getIdentities(); } - public List getIdentities(String number) { - return account.getSignalProtocolStore().getIdentities(number); + public Pair> getIdentities(String number) throws InvalidNumberException { + String canonicalizedNumber = Utils.canonicalizeNumber(number, username); + return new Pair<>(canonicalizedNumber, account.getSignalProtocolStore().getIdentities(canonicalizedNumber)); } /**