]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/cli/Manager.java
Load json even if signalingKey is missing
[signal-cli] / src / main / java / cli / Manager.java
index 97070c97a2be5aace51a9d6494a7bb20e13dc6dd..ff2178b416245c14e7e96ca282112f4fa69df661 100644 (file)
@@ -30,12 +30,12 @@ import org.whispersystems.textsecure.api.TextSecureMessagePipe;
 import org.whispersystems.textsecure.api.TextSecureMessageReceiver;
 import org.whispersystems.textsecure.api.TextSecureMessageSender;
 import org.whispersystems.textsecure.api.crypto.TextSecureCipher;
+import org.whispersystems.textsecure.api.messages.TextSecureContent;
 import org.whispersystems.textsecure.api.messages.TextSecureEnvelope;
-import org.whispersystems.textsecure.api.messages.TextSecureMessage;
+import org.whispersystems.textsecure.api.push.TextSecureAddress;
 import org.whispersystems.textsecure.api.push.TrustStore;
 
 import java.io.*;
-import java.nio.file.Path;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
@@ -81,7 +81,9 @@ public class Manager {
         JSONObject in = new JSONObject(IOUtils.toString(new FileInputStream(getFileName())));
         username = in.getString("username");
         password = in.getString("password");
-        signalingKey = in.getString("signalingKey");
+        if (in.has("signalingKey")) {
+            signalingKey = in.getString("signalingKey");
+        }
         axolotlStore = new JsonAxolotlStore(in.getJSONObject("axolotlStore"));
         registered = in.getBoolean("registered");
         accountManager = new TextSecureAccountManager(URL, TRUST_STORE, username, password);
@@ -151,7 +153,7 @@ public class Manager {
                 axolotlStore, Optional.<TextSecureMessageSender.EventListener>absent());
     }
 
-    public TextSecureMessage receiveMessage() throws IOException, InvalidVersionException {
+    public TextSecureContent receiveMessage() throws IOException, InvalidVersionException {
         TextSecureMessageReceiver messageReceiver = new TextSecureMessageReceiver(URL, TRUST_STORE, username, password, signalingKey);
         TextSecureMessagePipe messagePipe = null;
 
@@ -164,8 +166,8 @@ public class Manager {
             } catch (TimeoutException e) {
                 return null;
             }
-            TextSecureCipher cipher = new TextSecureCipher(axolotlStore);
-            TextSecureMessage message = null;
+            TextSecureCipher cipher = new TextSecureCipher(new TextSecureAddress(username), axolotlStore);
+            TextSecureContent message = null;
             try {
                 message = cipher.decrypt(envelope);
             } catch (Exception e) {