From ea8f7e75286d03f989d4fe56e56c35e171073546 Mon Sep 17 00:00:00 2001 From: AsamK Date: Sun, 9 Dec 2018 18:22:28 +0100 Subject: [PATCH 01/16] Bump version 0.6.1 - Added getGroupIds dbus command - Use "NativePRNG" pseudo random number generator, if available - Switch default data path: $XDG_DATA_HOME/signal-cli ($HOME/.local/share/signal-cli) Existing data paths will continue to work (used as fallback) --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index c0c9097d..0f0231d7 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ targetCompatibility = JavaVersion.VERSION_1_7 mainClassName = 'org.asamk.signal.Main' -version = '0.6.0' +version = '0.6.1' compileJava.options.encoding = 'UTF-8' -- 2.51.0 From fd550d6088d2561e7dad5a8b123c142e1a4bd6f7 Mon Sep 17 00:00:00 2001 From: AsamK Date: Wed, 12 Dec 2018 22:21:49 +0100 Subject: [PATCH 02/16] Update libsignal-service-java --- build.gradle | 2 +- src/main/java/org/asamk/signal/manager/Manager.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 0f0231d7..73823ba2 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ repositories { } dependencies { - compile 'com.github.turasa:signal-service-java:2.12.2_unofficial_2' + compile 'com.github.turasa:signal-service-java:2.12.3_unofficial_1' compile 'org.bouncycastle:bcprov-jdk15on:1.60' compile 'net.sourceforge.argparse4j:argparse4j:0.8.1' compile 'org.freedesktop.dbus:dbus-java:2.7.0' diff --git a/src/main/java/org/asamk/signal/manager/Manager.java b/src/main/java/org/asamk/signal/manager/Manager.java index f18cb219..8bfdff08 100644 --- a/src/main/java/org/asamk/signal/manager/Manager.java +++ b/src/main/java/org/asamk/signal/manager/Manager.java @@ -189,7 +189,7 @@ public class Manager implements Signal { accountManager = new SignalServiceAccountManager(BaseConfig.serviceConfiguration, account.getUsername(), account.getPassword(), BaseConfig.USER_AGENT, timer); if (voiceVerification) - accountManager.requestVoiceVerificationCode(); + accountManager.requestVoiceVerificationCode(Locale.getDefault()); else accountManager.requestSmsVerificationCode(); -- 2.51.0 From 5d843d82effaa355c2e2d69cf979aacc89a96570 Mon Sep 17 00:00:00 2001 From: Tai Groot Date: Thu, 13 Dec 2018 21:50:26 -0800 Subject: [PATCH 03/16] Minor spelling/grammar fix --- src/main/java/org/asamk/signal/Main.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/asamk/signal/Main.java b/src/main/java/org/asamk/signal/Main.java index e598d8e5..2d15c096 100644 --- a/src/main/java/org/asamk/signal/Main.java +++ b/src/main/java/org/asamk/signal/Main.java @@ -216,7 +216,7 @@ public class Main { } } if (ns.getList("recipient") != null && !ns.getList("recipient").isEmpty() && ns.getString("group") != null) { - System.err.println("You cannot specify recipients by phone number and groups a the same time"); + System.err.println("You cannot specify recipients by phone number and groups at the same time"); System.exit(2); } return ns; -- 2.51.0 From 51c130b40651b1d01caee7175235f2632f5aa73e Mon Sep 17 00:00:00 2001 From: Herohtar Date: Fri, 14 Dec 2018 11:15:12 -0600 Subject: [PATCH 04/16] Don't abort on empty recipient unless there was also no group specified. (#176) * Don't abort on empty recipient unless there was also no group specified. * Fixed potential error if user tries to send `endsession` to a group * Display error if trying to send `endsession` to a group * No need for this check since we're handling that condition above --- src/main/java/org/asamk/signal/commands/SendCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/asamk/signal/commands/SendCommand.java b/src/main/java/org/asamk/signal/commands/SendCommand.java index 308e564c..176c2d92 100644 --- a/src/main/java/org/asamk/signal/commands/SendCommand.java +++ b/src/main/java/org/asamk/signal/commands/SendCommand.java @@ -46,7 +46,7 @@ public class SendCommand implements DbusCommand { return 1; } - if (ns.getList("recipient") == null || ns.getList("recipient").size() == 0) { + if ((ns.getList("recipient") == null || ns.getList("recipient").size() == 0) && (ns.getBoolean("endsession") || ns.getString("group") == null)) { System.err.println("No recipients given"); System.err.println("Aborting sending."); return 1; -- 2.51.0 From f3878c54a627d278e503de1f4497a86f76519bc8 Mon Sep 17 00:00:00 2001 From: AsamK Date: Sun, 16 Dec 2018 21:14:00 +0100 Subject: [PATCH 05/16] Update signal-service-java --- build.gradle | 2 +- src/main/java/org/asamk/signal/manager/Manager.java | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 73823ba2..c96f6339 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ repositories { } dependencies { - compile 'com.github.turasa:signal-service-java:2.12.3_unofficial_1' + compile 'com.github.turasa:signal-service-java:2.12.4_unofficial_1' compile 'org.bouncycastle:bcprov-jdk15on:1.60' compile 'net.sourceforge.argparse4j:argparse4j:0.8.1' compile 'org.freedesktop.dbus:dbus-java:2.7.0' diff --git a/src/main/java/org/asamk/signal/manager/Manager.java b/src/main/java/org/asamk/signal/manager/Manager.java index 8bfdff08..44ec6445 100644 --- a/src/main/java/org/asamk/signal/manager/Manager.java +++ b/src/main/java/org/asamk/signal/manager/Manager.java @@ -188,10 +188,11 @@ public class Manager implements Signal { account.setPassword(KeyUtils.createPassword()); accountManager = new SignalServiceAccountManager(BaseConfig.serviceConfiguration, account.getUsername(), account.getPassword(), BaseConfig.USER_AGENT, timer); - if (voiceVerification) + if (voiceVerification) { accountManager.requestVoiceVerificationCode(Locale.getDefault()); - else - accountManager.requestSmsVerificationCode(); + } else { + accountManager.requestSmsVerificationCode(false); + } account.setRegistered(false); account.save(); -- 2.51.0 From a055f282c69472b1aab2538c5b9ccbbd4a4b3f5d Mon Sep 17 00:00:00 2001 From: AsamK Date: Sun, 16 Dec 2018 21:14:05 +0100 Subject: [PATCH 06/16] Bump version 0.6.2 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index c96f6339..f034e1bd 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ targetCompatibility = JavaVersion.VERSION_1_7 mainClassName = 'org.asamk.signal.Main' -version = '0.6.1' +version = '0.6.2' compileJava.options.encoding = 'UTF-8' -- 2.51.0 From 58895aaf03742cb5c2067ec54ab3ab2bfaaa27b4 Mon Sep 17 00:00:00 2001 From: Parker Higgins Date: Wed, 9 Jan 2019 14:17:45 -0500 Subject: [PATCH 07/16] Expose filename of attachments to json message handler (#185) --- src/main/java/org/asamk/signal/JsonAttachment.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/org/asamk/signal/JsonAttachment.java b/src/main/java/org/asamk/signal/JsonAttachment.java index 29e8592e..785fa9e2 100644 --- a/src/main/java/org/asamk/signal/JsonAttachment.java +++ b/src/main/java/org/asamk/signal/JsonAttachment.java @@ -6,14 +6,19 @@ import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPoin class JsonAttachment { String contentType; + String filename; long id; int size; JsonAttachment(SignalServiceAttachment attachment) { this.contentType = attachment.getContentType(); + final SignalServiceAttachmentPointer pointer = attachment.asPointer(); if (attachment.isPointer()) { this.id = pointer.getId(); + if (pointer.getFileName().isPresent()) { + this.filename = pointer.getFileName().get(); + } if (pointer.getSize().isPresent()) { this.size = pointer.getSize().get(); } -- 2.51.0 From c90d5db608fd3c15c53506cd474a225cb7041bd7 Mon Sep 17 00:00:00 2001 From: AsamK Date: Wed, 13 Feb 2019 21:05:27 +0100 Subject: [PATCH 08/16] Update libsignal-service-java --- build.gradle | 2 +- src/main/java/org/asamk/signal/Main.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index f034e1bd..13fd298e 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ repositories { } dependencies { - compile 'com.github.turasa:signal-service-java:2.12.4_unofficial_1' + compile 'com.github.turasa:signal-service-java:2.12.7_unofficial_1' compile 'org.bouncycastle:bcprov-jdk15on:1.60' compile 'net.sourceforge.argparse4j:argparse4j:0.8.1' compile 'org.freedesktop.dbus:dbus-java:2.7.0' diff --git a/src/main/java/org/asamk/signal/Main.java b/src/main/java/org/asamk/signal/Main.java index 2d15c096..e5335b28 100644 --- a/src/main/java/org/asamk/signal/Main.java +++ b/src/main/java/org/asamk/signal/Main.java @@ -210,7 +210,7 @@ public class Main { System.err.println("You need to specify a username (phone number)"); System.exit(2); } - if (!PhoneNumberFormatter.isValidNumber(ns.getString("username"))) { + if (!PhoneNumberFormatter.isValidNumber(ns.getString("username"), null)) { System.err.println("Invalid username (phone number), make sure you include the country code."); System.exit(2); } -- 2.51.0 From 6d5cfa32e2d4b7e2038872ab1e526c4d6d608215 Mon Sep 17 00:00:00 2001 From: AsamK Date: Wed, 13 Feb 2019 21:19:31 +0100 Subject: [PATCH 09/16] Fix NPE when receiving contacts sync message Fixes #191 --- src/main/java/org/asamk/signal/manager/Manager.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/org/asamk/signal/manager/Manager.java b/src/main/java/org/asamk/signal/manager/Manager.java index 44ec6445..e358fcb9 100644 --- a/src/main/java/org/asamk/signal/manager/Manager.java +++ b/src/main/java/org/asamk/signal/manager/Manager.java @@ -1149,6 +1149,10 @@ public class Manager implements Signal { } if (c.getExpirationTimer().isPresent()) { ThreadInfo thread = account.getThreadStore().getThread(c.getNumber()); + if (thread == null) { + thread = new ThreadInfo(); + thread.id = c.getNumber(); + } thread.messageExpirationTime = c.getExpirationTimer().get(); account.getThreadStore().updateThread(thread); } -- 2.51.0 From 6f7350d031585e47172a52ffd2892b5aceb956b6 Mon Sep 17 00:00:00 2001 From: AsamK Date: Sat, 23 Mar 2019 18:32:31 +0100 Subject: [PATCH 10/16] Update dependencies --- build.gradle | 4 ++-- src/main/java/org/asamk/signal/Main.java | 5 +++-- src/main/java/org/asamk/signal/manager/Manager.java | 4 ++-- src/main/java/org/asamk/signal/manager/Utils.java | 5 +++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index 13fd298e..97f0d0c2 100644 --- a/build.gradle +++ b/build.gradle @@ -20,8 +20,8 @@ repositories { } dependencies { - compile 'com.github.turasa:signal-service-java:2.12.7_unofficial_1' - compile 'org.bouncycastle:bcprov-jdk15on:1.60' + compile 'com.github.turasa:signal-service-java:2.13.0_unofficial_2' + compile 'org.bouncycastle:bcprov-jdk15on:1.61' compile 'net.sourceforge.argparse4j:argparse4j:0.8.1' compile 'org.freedesktop.dbus:dbus-java:2.7.0' } diff --git a/src/main/java/org/asamk/signal/Main.java b/src/main/java/org/asamk/signal/Main.java index e5335b28..e1343fbf 100644 --- a/src/main/java/org/asamk/signal/Main.java +++ b/src/main/java/org/asamk/signal/Main.java @@ -19,7 +19,6 @@ package org.asamk.signal; import net.sourceforge.argparse4j.ArgumentParsers; import net.sourceforge.argparse4j.impl.Arguments; import net.sourceforge.argparse4j.inf.*; -import org.apache.http.util.TextUtils; import org.asamk.Signal; import org.asamk.signal.commands.*; import org.asamk.signal.manager.BaseConfig; @@ -35,6 +34,8 @@ import java.io.File; import java.security.Security; import java.util.Map; +import static org.whispersystems.signalservice.internal.util.Util.isEmpty; + public class Main { public static void main(String[] args) { @@ -82,7 +83,7 @@ public class Main { } } else { String dataPath = ns.getString("config"); - if (TextUtils.isEmpty(dataPath)) { + if (isEmpty(dataPath)) { dataPath = getDefaultDataPath(); } diff --git a/src/main/java/org/asamk/signal/manager/Manager.java b/src/main/java/org/asamk/signal/manager/Manager.java index e358fcb9..94605632 100644 --- a/src/main/java/org/asamk/signal/manager/Manager.java +++ b/src/main/java/org/asamk/signal/manager/Manager.java @@ -189,9 +189,9 @@ public class Manager implements Signal { accountManager = new SignalServiceAccountManager(BaseConfig.serviceConfiguration, account.getUsername(), account.getPassword(), BaseConfig.USER_AGENT, timer); if (voiceVerification) { - accountManager.requestVoiceVerificationCode(Locale.getDefault()); + accountManager.requestVoiceVerificationCode(Locale.getDefault(), Optional.absent()); } else { - accountManager.requestSmsVerificationCode(false); + accountManager.requestSmsVerificationCode(false, Optional.absent()); } account.setRegistered(false); diff --git a/src/main/java/org/asamk/signal/manager/Utils.java b/src/main/java/org/asamk/signal/manager/Utils.java index dbcd7e42..4012674f 100644 --- a/src/main/java/org/asamk/signal/manager/Utils.java +++ b/src/main/java/org/asamk/signal/manager/Utils.java @@ -1,6 +1,5 @@ package org.asamk.signal.manager; -import org.apache.http.util.TextUtils; import org.asamk.signal.AttachmentInvalidException; import org.signal.libsignal.metadata.certificate.CertificateValidator; import org.whispersystems.libsignal.IdentityKey; @@ -25,6 +24,8 @@ import java.net.URLEncoder; import java.nio.file.Files; import java.util.*; +import static org.whispersystems.signalservice.internal.util.Util.isEmpty; + class Utils { static List getSignalServiceAttachments(List attachments) throws AttachmentInvalidException { @@ -100,7 +101,7 @@ class Utils { String deviceIdentifier = query.get("uuid"); String publicKeyEncoded = query.get("pub_key"); - if (TextUtils.isEmpty(deviceIdentifier) || TextUtils.isEmpty(publicKeyEncoded)) { + if (isEmpty(deviceIdentifier) || isEmpty(publicKeyEncoded)) { throw new RuntimeException("Invalid device link uri"); } -- 2.51.0 From 24714454dd43fe2df8981d37c98bd5c4c1a69a45 Mon Sep 17 00:00:00 2001 From: AsamK Date: Sat, 23 Mar 2019 22:08:25 +0100 Subject: [PATCH 11/16] Send self messages only as sync messages To align with the way Note to Self messages are implemented on Android --- .../java/org/asamk/signal/manager/Manager.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/java/org/asamk/signal/manager/Manager.java b/src/main/java/org/asamk/signal/manager/Manager.java index 94605632..d75ac76b 100644 --- a/src/main/java/org/asamk/signal/manager/Manager.java +++ b/src/main/java/org/asamk/signal/manager/Manager.java @@ -773,6 +773,24 @@ public class Manager implements Signal { account.getSignalProtocolStore().saveIdentity(e.getE164Number(), e.getIdentityKey(), TrustLevel.UNTRUSTED); return Collections.emptyList(); } + } else if (recipientsTS.size() == 1 && recipientsTS.contains(new SignalServiceAddress(username))) { + SignalServiceAddress recipient = new SignalServiceAddress(username); + final Optional unidentifiedAccess = getAccessFor(recipient); + SentTranscriptMessage transcript = new SentTranscriptMessage(recipient.getNumber(), + message.getTimestamp(), + message, + message.getExpiresInSeconds(), + Collections.singletonMap(recipient.getNumber(), unidentifiedAccess.isPresent())); + SignalServiceSyncMessage syncMessage = SignalServiceSyncMessage.forSentTranscript(transcript); + + List results = new ArrayList<>(recipientsTS.size()); + try { + messageSender.sendMessage(syncMessage, unidentifiedAccess); + } catch (UntrustedIdentityException e) { + account.getSignalProtocolStore().saveIdentity(e.getE164Number(), e.getIdentityKey(), TrustLevel.UNTRUSTED); + results.add(SendMessageResult.identityFailure(recipient, e.getIdentityKey())); + } + return results; } else { // Send to all individually, so sync messages are sent correctly List results = new ArrayList<>(recipientsTS.size()); -- 2.51.0 From 35181251bfe672a21f84a105b5f9dc8080b83cd9 Mon Sep 17 00:00:00 2001 From: AsamK Date: Wed, 19 Jun 2019 21:47:18 +0200 Subject: [PATCH 12/16] Update libsignal-service-java dependency --- build.gradle | 2 +- src/main/java/org/asamk/signal/manager/Manager.java | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 97f0d0c2..acadd909 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ repositories { } dependencies { - compile 'com.github.turasa:signal-service-java:2.13.0_unofficial_2' + compile 'com.github.turasa:signal-service-java:2.13.4_unofficial_1' compile 'org.bouncycastle:bcprov-jdk15on:1.61' compile 'net.sourceforge.argparse4j:argparse4j:0.8.1' compile 'org.freedesktop.dbus:dbus-java:2.7.0' diff --git a/src/main/java/org/asamk/signal/manager/Manager.java b/src/main/java/org/asamk/signal/manager/Manager.java index d75ac76b..a719dcf7 100644 --- a/src/main/java/org/asamk/signal/manager/Manager.java +++ b/src/main/java/org/asamk/signal/manager/Manager.java @@ -56,6 +56,7 @@ import org.whispersystems.signalservice.api.util.InvalidNumberException; import org.whispersystems.signalservice.api.util.SleepTimer; import org.whispersystems.signalservice.api.util.UptimeSleepTimer; import org.whispersystems.signalservice.internal.push.SignalServiceProtos; +import org.whispersystems.signalservice.internal.push.UnsupportedDataMessageException; import org.whispersystems.signalservice.internal.util.Base64; import java.io.*; @@ -762,7 +763,8 @@ public class Manager implements Signal { message = messageBuilder.build(); if (message.getGroupInfo().isPresent()) { try { - List result = messageSender.sendMessage(new ArrayList<>(recipientsTS), getAccessFor(recipientsTS), message); + final boolean isRecipientUpdate = true; + List result = messageSender.sendMessage(new ArrayList<>(recipientsTS), getAccessFor(recipientsTS), isRecipientUpdate, message); for (SendMessageResult r : result) { if (r.getIdentityFailure() != null) { account.getSignalProtocolStore().saveIdentity(r.getAddress().getNumber(), r.getIdentityFailure().getIdentityKey(), TrustLevel.UNTRUSTED); @@ -780,7 +782,8 @@ public class Manager implements Signal { message.getTimestamp(), message, message.getExpiresInSeconds(), - Collections.singletonMap(recipient.getNumber(), unidentifiedAccess.isPresent())); + Collections.singletonMap(recipient.getNumber(), unidentifiedAccess.isPresent()), + false); SignalServiceSyncMessage syncMessage = SignalServiceSyncMessage.forSentTranscript(transcript); List results = new ArrayList<>(recipientsTS.size()); @@ -822,7 +825,7 @@ public class Manager implements Signal { } } - private SignalServiceContent decryptMessage(SignalServiceEnvelope envelope) throws InvalidMetadataMessageException, ProtocolInvalidMessageException, ProtocolDuplicateMessageException, ProtocolLegacyMessageException, ProtocolInvalidKeyIdException, InvalidMetadataVersionException, ProtocolInvalidVersionException, ProtocolNoSessionException, ProtocolInvalidKeyException, ProtocolUntrustedIdentityException, SelfSendException { + private SignalServiceContent decryptMessage(SignalServiceEnvelope envelope) throws InvalidMetadataMessageException, ProtocolInvalidMessageException, ProtocolDuplicateMessageException, ProtocolLegacyMessageException, ProtocolInvalidKeyIdException, InvalidMetadataVersionException, ProtocolInvalidVersionException, ProtocolNoSessionException, ProtocolInvalidKeyException, ProtocolUntrustedIdentityException, SelfSendException, UnsupportedDataMessageException { SignalServiceCipher cipher = new SignalServiceCipher(new SignalServiceAddress(username), account.getSignalProtocolStore(), Utils.getCertificateValidator()); try { return cipher.decrypt(envelope); -- 2.51.0 From 93ae4641fa1898d5ecf4d589f189bd2590af00b7 Mon Sep 17 00:00:00 2001 From: AsamK Date: Sat, 13 Jul 2019 14:22:20 +0200 Subject: [PATCH 13/16] Update libsignal-service-java --- build.gradle | 2 +- src/main/java/org/asamk/signal/manager/Manager.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index acadd909..bfac34b0 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ repositories { } dependencies { - compile 'com.github.turasa:signal-service-java:2.13.4_unofficial_1' + compile 'com.github.turasa:signal-service-java:2.13.5_unofficial_1' compile 'org.bouncycastle:bcprov-jdk15on:1.61' compile 'net.sourceforge.argparse4j:argparse4j:0.8.1' compile 'org.freedesktop.dbus:dbus-java:2.7.0' diff --git a/src/main/java/org/asamk/signal/manager/Manager.java b/src/main/java/org/asamk/signal/manager/Manager.java index a719dcf7..492842ab 100644 --- a/src/main/java/org/asamk/signal/manager/Manager.java +++ b/src/main/java/org/asamk/signal/manager/Manager.java @@ -190,9 +190,9 @@ public class Manager implements Signal { accountManager = new SignalServiceAccountManager(BaseConfig.serviceConfiguration, account.getUsername(), account.getPassword(), BaseConfig.USER_AGENT, timer); if (voiceVerification) { - accountManager.requestVoiceVerificationCode(Locale.getDefault(), Optional.absent()); + accountManager.requestVoiceVerificationCode(Locale.getDefault(), Optional.absent(), Optional.absent()); } else { - accountManager.requestSmsVerificationCode(false, Optional.absent()); + accountManager.requestSmsVerificationCode(false, Optional.absent(), Optional.absent()); } account.setRegistered(false); -- 2.51.0 From 8574eb3f95a21405de64af359ca9f357a4fbe3f1 Mon Sep 17 00:00:00 2001 From: AsamK Date: Sat, 13 Jul 2019 14:24:14 +0200 Subject: [PATCH 14/16] Update dependencies --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index bfac34b0..73302563 100644 --- a/build.gradle +++ b/build.gradle @@ -21,7 +21,7 @@ repositories { dependencies { compile 'com.github.turasa:signal-service-java:2.13.5_unofficial_1' - compile 'org.bouncycastle:bcprov-jdk15on:1.61' + compile 'org.bouncycastle:bcprov-jdk15on:1.62' compile 'net.sourceforge.argparse4j:argparse4j:0.8.1' compile 'org.freedesktop.dbus:dbus-java:2.7.0' } -- 2.51.0 From 78474453d7de5fa50c32c460e18877485bc26f78 Mon Sep 17 00:00:00 2001 From: Juergen Kurzmann Date: Fri, 19 Jul 2019 11:26:19 +0200 Subject: [PATCH 15/16] Throw error on failed authorization - to exit signal-cli in case the number was registered elsewhere --- src/main/java/org/asamk/signal/manager/Manager.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/asamk/signal/manager/Manager.java b/src/main/java/org/asamk/signal/manager/Manager.java index 492842ab..575dde67 100644 --- a/src/main/java/org/asamk/signal/manager/Manager.java +++ b/src/main/java/org/asamk/signal/manager/Manager.java @@ -137,6 +137,7 @@ public class Manager implements Signal { } } catch (AuthorizationFailedException e) { System.err.println("Authorization failed, was the number registered elsewhere?"); + throw e; } } -- 2.51.0 From 8c295a3f905114815ed97d4cb9eb98e41f03c39d Mon Sep 17 00:00:00 2001 From: Juergen Kurzmann Date: Sat, 3 Aug 2019 21:49:02 +0200 Subject: [PATCH 16/16] Update SignalAccount storage on unregister - save registered false state in the SignalAccount storage on unregister action --- src/main/java/org/asamk/signal/manager/Manager.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/org/asamk/signal/manager/Manager.java b/src/main/java/org/asamk/signal/manager/Manager.java index 575dde67..8672684a 100644 --- a/src/main/java/org/asamk/signal/manager/Manager.java +++ b/src/main/java/org/asamk/signal/manager/Manager.java @@ -209,6 +209,9 @@ public class Manager implements Signal { // If this is the master device, other users can't send messages to this number anymore. // If this is a linked device, other users can still send messages, but this device doesn't receive them anymore. accountManager.setGcmId(Optional.absent()); + + account.setRegistered(false); + account.save(); } public String getDeviceLinkUri() throws TimeoutException, IOException { -- 2.51.0