Commit graph

550 commits

Author SHA1 Message Date
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
06caf4ebb3 Update dependencies 2020-05-11 11:49:02 +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
a486b752e8 Improve asciidoc formatting of the man page 2020-05-06 09:24:54 +02:00
AsamK
d8ef312b5f Remove version check which isn't working correctly 2020-05-06 09:18:48 +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
207075c236 Update README.md
Closes #286
2020-05-06 08:37:30 +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
6ca695b65e Bump version 2020-04-03 18:00:27 +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
e04c45766d Rename fingerprint to safety number
Fixes #92
2020-04-03 14:27:18 +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
narodnik
d49d536c32
Add a new sync dbus message which shows messages you sent. Necessary for having synchronized chats where you want your message to appear. Format is similar to receive message dbus except instead of sender, it has sender (source) and receiver (destination). (#289) 2020-04-03 13:16:57 +02:00
AsamK
e684a902bb Update dependencies 2020-03-30 22:00:41 +02:00
signal-stickers
b68575dd16
Use correct sticker pack key length of 32. (#288)
* Use correct sticker pack key length of 32.

* Update dependencies

Co-authored-by: AsamK <asamk@gmx.de>
2020-03-30 21:19:17 +02:00
AsamK
57390ae735 Bump version 2020-03-29 15:26:28 +02:00
AsamK
b3870d6281 Update gradle wrapper 2020-03-29 14:49:01 +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
416f43b225 Fix potential crash that could happen when legacy thread.id is null or empty 2020-03-27 15:33:27 +01:00
AsamK
286070c054 Use legacy sender certificate, until uuid support is complete 2020-03-25 20:34:12 +01:00
AsamK
d50dc69f08 Remove unused methods from LegacyJsonThreadStore 2020-03-24 19:30:21 +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
9546a79308 Print better error message for captcha required error 2020-03-24 15:14:20 +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
eb0648828a Show recipient of sent sync message also when destination is not present 2020-03-23 17:10:44 +01:00
AsamK
0ce64dc923 Use lambda for ThreadLocal 2020-03-23 17:10:11 +01:00
AsamK
e2b7bda65b Use SignalServiceAddress in more places 2020-03-23 17:09:56 +01:00
AsamK
8a44b37774 Add documentation for sticker upload 2020-03-23 14:49:21 +01:00
AsamK
4f1ee83475 Reformat project 2020-03-23 14:49:21 +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
3f315df6c8 Add toString method to Hex utils 2020-03-23 13:21:56 +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