Commit graph

76 commits

Author SHA1 Message Date
AsamK
34caba2a7a Delay auto responses to messages until caught up with old messages
To prevent responding with old state, if the last receive call was a long
time ago.
2020-06-05 12:13:17 +02:00
AsamK
d14b8ac71f Detect when receive has caught up with old messages 2020-06-04 18:44:13 +02:00
AsamK
bfb12b0872 Refactor sendMessage and extract sendSelfMessage method 2020-05-22 12:54:22 +02:00
AsamK
1aba9f370e Extract sending of expiration timer update to separate method 2020-05-22 12:48:39 +02:00
AsamK
e048b1886d Store number/uuid in recipient store after receiving a message
Necessary to find the correct session if the sender send the next message
with only the uuid.

Fixes #309
2020-05-22 12:32:36 +02:00
Matúš Košút
b382a4260b
Contact config - message expiration time (#308)
Co-authored-by: Matus Kosut <matus.kosut@ntnu.no>
2020-05-16 22:55:53 +02:00
AsamK
1e0aa8929d Separate DbusSignal implementation from Manager 2020-05-15 23:11:18 +02:00
AsamK
d08508e6ef Move Exception classes to corresponding package 2020-05-15 20:03:51 +02:00
AsamK
d520023fc7 Refactor Manager and SignalAccount to implement Closeable
Should make sure that file lock and web socket connections are closed
reliably.
2020-05-13 23:33:40 +02:00
AsamK
87f65de0c5 Save account state after ending session even if sending the message has failed 2020-05-11 18:31:22 +02:00
AsamK
a02031aa80 Refactor Manager to always have a valid SignalAccount instance
Extract ProvisioningManager to link new devices
2020-05-11 18:07:37 +02:00
AsamK
8163a42d3a Split manager ServiceConfig from BaseConfig 2020-05-11 14:51:55 +02:00
AsamK
916d0e3cf1 Don't send group info request after receiving QUIT for unknown group
The sender has quit the group so he won't respond to the info request anyway
2020-05-07 12:41:49 +02:00
AsamK
26840a2f0f Update dependencies 2020-05-06 20:11:26 +02:00
AsamK
00777a469c Switch to hypfvieh dbus-java
Removes transitive dependency on libmatthew-unix-java

Fixes #285
2020-05-06 09:13:49 +02:00
AsamK
08749fcee0 When sending an end session message clear local session store also if sending message fails 2020-04-21 20:36:28 +02:00
AsamK
19b01ff2e9 Also catch IllegalArgumentException when sending messages during receive
It's necessary to keep receiving messages if a session state is corrupted.
e.g:
Exception in thread "main" java.lang.IllegalArgumentException: Empty key
        at java.base/javax.crypto.spec.SecretKeySpec.<init>(Unknown Source)
        at org.whispersystems.libsignal.ratchet.ChainKey.getBaseMaterial(ChainKey.java:57)
        at org.whispersystems.libsignal.ratchet.ChainKey.getMessageKeys(ChainKey.java:47)
        at org.whispersystems.libsignal.SessionCipher.encrypt(SessionCipher.java:97)
        at org.signal.libsignal.metadata.SealedSessionCipher.encrypt(SealedSessionCipher.java:70)
        at org.whispersystems.signalservice.api.crypto.SignalServiceCipher.encrypt(SignalServiceCipher.java:86)
        at org.whispersystems.signalservice.api.SignalServiceMessageSender.getEncryptedMessage(SignalServiceMessageSender.java:1456)
        at org.whispersystems.signalservice.api.SignalServiceMessageSender.getEncryptedMessages(SignalServiceMessageSender.java:1406)
        at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendMessage(SignalServiceMessageSender.java:1276)
        at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendReceipt(SignalServiceMessageSender.java:206)
        at org.asamk.signal.manager.Manager.sendReceipt(Manager.java:686)
        at org.asamk.signal.manager.Manager.handleMessage(Manager.java:1562)
        at org.asamk.signal.manager.Manager.receiveMessages(Manager.java:1496)
        at org.asamk.signal.commands.ReceiveCommand.handleCommand(ReceiveCommand.java:160)
        at org.asamk.signal.Main.handleCommands(Main.java:137)
        at org.asamk.signal.Main.main(Main.java:60)
2020-04-21 20:33:23 +02:00
AsamK
ae41d0c502 Output json when receiving messages from dbus and --json parameter is given
Fixes #138
2020-04-03 16:22:10 +02:00
AsamK
f51f0cbbcf Return message timestamp after sucessfully sending a message
Fixes #104
2020-04-03 14:02:18 +02:00
AsamK
320e126eeb Add RecipientStore to resolve all identifiers to SignalServiceAddress
Should fix #290
2020-04-03 13:22:36 +02:00
AsamK
e684a902bb Update dependencies 2020-03-30 22:00:41 +02:00
AsamK
ff18b1bf99 Get untrusted identity from inner exception
Fixes #283
2020-03-29 14:45:11 +02:00
AsamK
7e5aec6e15 Store uuids in identity and session store 2020-03-29 13:32:45 +02:00
AsamK
286070c054 Use legacy sender certificate, until uuid support is complete 2020-03-25 20:34:12 +01:00
AsamK
5df8f32820 Mark our own identity key as trusted initially
to match Signal-Android behavior
2020-03-24 18:16:05 +01:00
AsamK
995de3ef5b Improve behavior, when authorization fails
- register command should still be possible, to regain authorization
- reset uuid after registering, otherwise the verify request will fail
2020-03-24 18:15:21 +01:00
AsamK
efa1c43b0b Get uuids from contact store when resolving numbers 2020-03-24 14:36:12 +01:00
AsamK
26aa31edc2 Only send our profile key to recipient who are in our contact list 2020-03-24 14:36:12 +01:00
AsamK
20bf605e36 Only store our own profile key in contact list, if a contact entry already exists 2020-03-24 14:36:12 +01:00
AsamK
6665dc0e48 Set uuid after verify and linking and request it at startup for existing clients 2020-03-24 14:36:12 +01:00
AsamK
1b56485fc8 Send delivery receipt for data messages that need it
With the unidentified sender messages, the Signal server cannot do this
automatically anymore.
2020-03-23 20:51:13 +01:00
AsamK
b62694dbc7 Remove ThreadStore and store message expiration time in group/contact store
To match the implemenation of Signal-Android
2020-03-23 20:51:13 +01:00
AsamK
f982d2752e Store group member uuids in group store
The member list is now stored as a mixed list of strings and objects, e.g.:
"members": [ "+XXXX", { "number": "+XXXX", "uuid": "XXX-XX" } ]
2020-03-23 20:51:13 +01:00
AsamK
a4e1d69788 Store contact uuids in contact store 2020-03-23 17:43:37 +01:00
AsamK
e2b7bda65b Use SignalServiceAddress in more places 2020-03-23 17:09:56 +01:00
AsamK
4ff28458ff Refactor sticker upload 2020-03-23 14:49:21 +01:00
Signal Stickers
23845eab47 Add support for uploading stickers.
Closes #256
2020-03-23 14:49:17 +01:00
AsamK
bb06ae9d9a Mark group as active when the user hasn't left it
Fixes #269
2020-03-22 18:27:29 +01:00
AsamK
67f6378f7f Fix storing received profile keys 2020-03-22 17:17:28 +01:00
AsamK
a6562b3b7b Implement sending messages using unidentified sender 2020-03-22 17:17:14 +01:00
AsamK
d7f7c84e6c Fix some inspection issues 2020-03-21 14:41:11 +01:00
AsamK
0dc6b1327e Update libsignal-service-java
- Use new ProfileKey class instead of byte array
- Add capabilities (for future support of uuid and groups v2)
2020-03-21 14:37:02 +01:00
AsamK
063fb95dca Add command sendReaction for emoji reactions 2020-02-22 11:29:17 +01:00
AsamK
37ed02f4ce Update to libsignal 2.15.3_unofficial_2 2020-02-12 20:36:23 +01:00
Daniel Schäufele
8b9640ba14 Add support for blocking contacts and accounts (#260)
* Add blockContact and unblockContact subcommands

* Send blocked status in contacts sync

* Use only one method for blocking and unblocking

* Add blocking/unblocking for groups

* Prevent blocked messages from being printed

* Print blocked property in listContacts and listGroups commands

* Handle BlockedListMessages

* Store blocked state from incoming contact and group sync messages

* Minor changes and corrections

* Add block and unblock commands to man file (and also fix some headings of commands)
2020-01-22 08:39:28 +01:00
AsamK
7f9379f78b Canonicalize number when listing identities 2020-01-21 22:09:21 +01:00
AsamK
cfd1e5544d Canonicalize number before getting/setting contact info 2020-01-21 22:08:16 +01:00
AsamK
eca1737d28 Upload attachment before sending to fix sending attachments to multiple recipients
Fixes #259
2020-01-21 20:32:52 +01:00
AsamK
4bafc7212a Update copyright notice 2020-01-21 20:32:19 +01:00
AsamK
3b2682a57a Display more information for received messages 2019-12-31 13:02:49 +01:00