mirror of
https://github.com/AsamK/signal-cli
synced 2025-08-29 18:40:39 +00:00
Store uuids in identity and session store
This commit is contained in:
parent
416f43b225
commit
7e5aec6e15
14 changed files with 510 additions and 251 deletions
|
@ -7,17 +7,15 @@ 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;
|
||||
|
||||
public class ListIdentitiesCommand implements LocalCommand {
|
||||
|
||||
private static void printIdentityFingerprint(Manager m, String theirUsername, JsonIdentityKeyStore.Identity theirId) {
|
||||
String digits = Util.formatSafetyNumber(m.computeSafetyNumber(theirUsername, theirId.getIdentityKey()));
|
||||
System.out.println(String.format("%s: %s Added: %s Fingerprint: %s Safety Number: %s", theirUsername,
|
||||
private static void printIdentityFingerprint(Manager m, JsonIdentityKeyStore.Identity theirId) {
|
||||
String digits = Util.formatSafetyNumber(m.computeSafetyNumber(theirId.getAddress(), theirId.getIdentityKey()));
|
||||
System.out.println(String.format("%s: %s Added: %s Fingerprint: %s Safety Number: %s", theirId.getAddress().getNumber().orNull(),
|
||||
theirId.getTrustLevel(), theirId.getDateAdded(), Hex.toString(theirId.getFingerprint()), digits));
|
||||
}
|
||||
|
||||
|
@ -34,17 +32,15 @@ public class ListIdentitiesCommand implements LocalCommand {
|
|||
return 1;
|
||||
}
|
||||
if (ns.get("number") == null) {
|
||||
for (Map.Entry<String, List<JsonIdentityKeyStore.Identity>> keys : m.getIdentities().entrySet()) {
|
||||
for (JsonIdentityKeyStore.Identity id : keys.getValue()) {
|
||||
printIdentityFingerprint(m, keys.getKey(), id);
|
||||
}
|
||||
for (JsonIdentityKeyStore.Identity identity : m.getIdentities()) {
|
||||
printIdentityFingerprint(m, identity);
|
||||
}
|
||||
} else {
|
||||
String number = ns.getString("number");
|
||||
try {
|
||||
Pair<String, List<JsonIdentityKeyStore.Identity>> key = m.getIdentities(number);
|
||||
for (JsonIdentityKeyStore.Identity id : key.second()) {
|
||||
printIdentityFingerprint(m, key.first(), id);
|
||||
List<JsonIdentityKeyStore.Identity> identities = m.getIdentities(number);
|
||||
for (JsonIdentityKeyStore.Identity id : identities) {
|
||||
printIdentityFingerprint(m, id);
|
||||
}
|
||||
} catch (InvalidNumberException e) {
|
||||
System.out.println("Invalid number: " + e.getMessage());
|
||||
|
|
|
@ -9,7 +9,6 @@ import org.asamk.signal.GroupNotFoundException;
|
|||
import org.asamk.signal.NotAGroupMemberException;
|
||||
import org.asamk.signal.manager.Manager;
|
||||
import org.asamk.signal.util.Util;
|
||||
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
|
||||
import org.whispersystems.signalservice.api.push.exceptions.EncapsulatedExceptions;
|
||||
import org.whispersystems.signalservice.api.util.InvalidNumberException;
|
||||
|
||||
|
@ -63,7 +62,7 @@ public class SendReactionCommand implements LocalCommand {
|
|||
|
||||
String emoji = ns.getString("emoji");
|
||||
boolean isRemove = ns.getBoolean("remove");
|
||||
SignalServiceAddress targetAuthor = new SignalServiceAddress(null, ns.getString("target_author"));
|
||||
String targetAuthor = ns.getString("target_author");
|
||||
long targetTimestamp = ns.getLong("target_timestamp");
|
||||
|
||||
try {
|
||||
|
|
|
@ -6,7 +6,9 @@ import net.sourceforge.argparse4j.inf.Namespace;
|
|||
import net.sourceforge.argparse4j.inf.Subparser;
|
||||
|
||||
import org.asamk.signal.manager.Manager;
|
||||
import org.asamk.signal.util.ErrorUtils;
|
||||
import org.asamk.signal.util.Hex;
|
||||
import org.whispersystems.signalservice.api.util.InvalidNumberException;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
|
@ -50,13 +52,25 @@ public class TrustCommand implements LocalCommand {
|
|||
System.err.println("Failed to parse the fingerprint, make sure the fingerprint is a correctly encoded hex string without additional characters.");
|
||||
return 1;
|
||||
}
|
||||
boolean res = m.trustIdentityVerified(number, fingerprintBytes);
|
||||
boolean res;
|
||||
try {
|
||||
res = m.trustIdentityVerified(number, fingerprintBytes);
|
||||
} catch (InvalidNumberException e) {
|
||||
ErrorUtils.handleInvalidNumberException(e);
|
||||
return 1;
|
||||
}
|
||||
if (!res) {
|
||||
System.err.println("Failed to set the trust for the fingerprint of this number, make sure the number and the fingerprint are correct.");
|
||||
return 1;
|
||||
}
|
||||
} else if (fingerprint.length() == 60) {
|
||||
boolean res = m.trustIdentityVerifiedSafetyNumber(number, fingerprint);
|
||||
boolean res;
|
||||
try {
|
||||
res = m.trustIdentityVerifiedSafetyNumber(number, fingerprint);
|
||||
} catch (InvalidNumberException e) {
|
||||
ErrorUtils.handleInvalidNumberException(e);
|
||||
return 1;
|
||||
}
|
||||
if (!res) {
|
||||
System.err.println("Failed to set the trust for the safety number of this phone number, make sure the phone number and the safety number are correct.");
|
||||
return 1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue