X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/f095d947f892830e1ced4af450df77a8f7ae6d5d..d83e0526fbcc08b3abb355dbff9ad3d6c79a2851:/src/main/java/org/asamk/signal/JsonIdentityKeyStore.java diff --git a/src/main/java/org/asamk/signal/JsonIdentityKeyStore.java b/src/main/java/org/asamk/signal/JsonIdentityKeyStore.java index 7cde350c..d71e3581 100644 --- a/src/main/java/org/asamk/signal/JsonIdentityKeyStore.java +++ b/src/main/java/org/asamk/signal/JsonIdentityKeyStore.java @@ -7,6 +7,7 @@ import com.fasterxml.jackson.databind.*; import org.whispersystems.libsignal.IdentityKey; import org.whispersystems.libsignal.IdentityKeyPair; import org.whispersystems.libsignal.InvalidKeyException; +import org.whispersystems.libsignal.SignalProtocolAddress; import org.whispersystems.libsignal.state.IdentityKeyStore; import java.io.IOException; @@ -36,8 +37,8 @@ class JsonIdentityKeyStore implements IdentityKeyStore { } @Override - public void saveIdentity(String name, IdentityKey identityKey) { - saveIdentity(name, identityKey, TrustLevel.TRUSTED_UNVERIFIED, null); + public void saveIdentity(SignalProtocolAddress address, IdentityKey identityKey) { + saveIdentity(address.getName(), identityKey, TrustLevel.TRUSTED_UNVERIFIED, null); } /** @@ -58,7 +59,9 @@ class JsonIdentityKeyStore implements IdentityKeyStore { if (!id.identityKey.equals(identityKey)) continue; - id.trustLevel = trustLevel; + if (id.trustLevel.compareTo(trustLevel) < 0) { + id.trustLevel = trustLevel; + } if (added != null) { id.added = added; } @@ -69,8 +72,8 @@ class JsonIdentityKeyStore implements IdentityKeyStore { } @Override - public boolean isTrustedIdentity(String name, IdentityKey identityKey) { - List identities = trustedKeys.get(name); + public boolean isTrustedIdentity(SignalProtocolAddress address, IdentityKey identityKey) { + List identities = trustedKeys.get(address.getName()); if (identities == null) { // Trust on first use return true;