]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/JsonIdentityKeyStore.java
Whitespace and output formatting fixes
[signal-cli] / src / main / java / org / asamk / signal / JsonIdentityKeyStore.java
index d4d0ea3e7f0d12319321d94b782024febc1a764b..d71e3581d6dc18e1f4f6dbd9d77a2d6701aed423 100644 (file)
@@ -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<Identity> identities = trustedKeys.get(name);
+    public boolean isTrustedIdentity(SignalProtocolAddress address, IdentityKey identityKey) {
+        List<Identity> identities = trustedKeys.get(address.getName());
         if (identities == null) {
             // Trust on first use
             return true;
@@ -85,6 +88,16 @@ class JsonIdentityKeyStore implements IdentityKeyStore {
         return false;
     }
 
+    public Map<String, List<Identity>> getIdentities() {
+        // TODO deep copy
+        return trustedKeys;
+    }
+
+    public List<Identity> getIdentities(String name) {
+        // TODO deep copy
+        return trustedKeys.get(name);
+    }
+
     public static class JsonIdentityKeyStoreDeserializer extends JsonDeserializer<JsonIdentityKeyStore> {
 
         @Override
@@ -165,8 +178,8 @@ class JsonIdentityKeyStore implements IdentityKeyStore {
                     trustLevel == TrustLevel.TRUSTED_VERIFIED;
         }
 
-        public String getFingerprint() {
-            return Hex.toStringCondensed(identityKey.getPublicKey().serialize());
+        public byte[] getFingerprint() {
+            return identityKey.getPublicKey().serialize();
         }
     }
 }