1
0
Fork 0
mirror of https://github.com/mautrix/signal.git synced 2026-05-14 21:26:54 -04:00
Commit graph

225 commits

Author SHA1 Message Date
Scott Weber
1ea9fe15d5 Properly format mentions signal -> matrix 2023-09-21 17:23:13 -04:00
Scott Weber
152029fe16 Upgrade to mautrix-go 0.16.1 and use it for double puppeting 2023-09-20 15:57:59 -04:00
Scott Weber
32d0226125 Send BAD_CREDENTIALS, clear certain keys on token deletion
This allows a user to delete their device in the Signal app and
successfully reconnect with a QR code scan
2023-09-20 14:28:09 -04:00
Scott Weber
03780d9761 Initial stab at provisioning API 2023-09-19 23:41:32 -04:00
Scott Weber
697cf63df1 Get contacts (for profile keys) on connect!
Send a contact sync request on initial websocket connection, then parse
the response, grab profile keys and store them (not doing anything with
other contact info and avatars yet).

Also fix attachment decryption - was ignoring extra padding at the end
of the buffer, which image formats were fine with but unmarshalling a
protobuf was not..
2023-09-19 19:06:41 -04:00
John Newman
b50649c04a Implement receiving stickers 2023-09-19 21:13:25 +01:00
Scott Weber
f304b1840e Forgot to add group_store.go :( 2023-09-14 16:40:27 -04:00
Scott Weber
9b18117029 Replace "master key" group identfiers with actual GroupIdentifier
Everywhere.

And save them in the DB so we can still look up master keys when needed
2023-09-14 16:33:40 -04:00
Scott Weber
12f7bb9df1 Make message sending more robust, particularly in the face of bad networking 2023-09-06 00:47:08 -04:00
Scott Weber
c2460ead6b Fix out-of-bounds in web.go path check 2023-09-05 11:41:35 -04:00
Scott Weber
2007559b64 Bridge mentions from signal -> matrix (no HTML formatting yet) 2023-09-05 09:11:29 -04:00
Scott Weber
e5d58bc4ce replies from matrix -> signal (except replies to images only work on signal android :S) 2023-09-04 23:20:23 -04:00
Scott Weber
df9dc128f4 Bridge replies signal -> matrix 2023-09-04 22:00:03 -04:00
Scott Weber
fdccca610b Only fetch new profile avatar if it has changed 2023-09-04 08:12:08 -04:00
Scott Weber
a12c5bb5d1 Download, decrypt, upload user profile avatar. But need to figure out caching 2023-08-31 20:17:23 -04:00
Scott Weber
f52f236780 Sending images! 2023-08-31 12:58:18 -04:00
Scott Weber
d5359f9e53 When sending sync messages to myself, don't send to my device, and use auth websocket 2023-08-29 13:34:55 -04:00
Scott Weber
e70c6f038a Bridge redactions signal -> matrix 2023-08-28 21:39:26 -04:00
Scott Weber
33ec5cc7ac Bridge redactions matrix -> signal 2023-08-28 21:24:01 -04:00
Scott Weber
ae46b7aee2 Bridge reaction redactions from matrix -> signal 2023-08-28 21:10:19 -04:00
Scott Weber
9122c32e66 Bridge reactions (but not reaction redactions) from matrix -> signal
Also some substantial message sending refactoring
2023-08-28 17:15:25 -04:00
Scott Weber
1c50f8c1e1 Bridging reactions Signal -> Matrix (but not redacting them) 2023-08-27 16:05:05 -04:00
Scott Weber
bcb0041004 Bridge image size and filename (to make captions work) 2023-08-25 13:53:37 -04:00
Scott Weber
eb3ebdd8ff Can receive a message! (But lots to tidy up here) 2023-08-25 12:56:39 -04:00
Scott Weber
f3fad459f7 More robust bridge states, partial logout support, hopefully more robust mautrix interface code 2023-08-24 15:06:39 -04:00
Scott Weber
2cb24d197b Overhaul SignalWebsocket error handling and hook up to BridgeState 2023-08-22 11:54:35 -04:00
Scott Weber
0aa0072869 Strip non-printable characters from group titles 2023-08-18 14:20:23 -04:00
Scott Weber
30aa6b41c0 Fix deadlock in websocket code
- Readloop goroutine gets a new request (incoming message), sends to
  incoming loop
- Incoming request loop goroutine calls incoming message handler
- Incoming message handler needs group info, sends a WS request
- Sendloop goroutine gets request, sends on WS, stores response channel
  in map
- Incoming message handler is blocked waiting on response on it's
  response channel
- Readloop gets some other request, tries to send to incoming loop, but
  gets blocked on sending to incoming request channel because it's
  unbuffered and that goroutine is still blocked waiting on group info
- Server responds with response to group info request, but readloop is
  blocked now forever

The fix: give the incomingRequestChan a large (10000) buffer. Now:

- Readloop goroutine gets a new request (incoming message), sends to
  incoming loop
- Incoming request loop goroutine calls incoming message handler
- Incoming message handler needs group info, sends a WS request
- Sendloop goroutine gets request, sends on WS, stores response channel
  in map
- Incoming message handler is blocked waiting on response on it's
  response channel
- Readloop gets some other request and successfully buffers it in the
  incoming request channel
- Server responds with response to group info request, readloop is *not*
  blocked, and can pass the response down the response channel that the
  incoming message handler is blocked on, and it can finish up
- Incoming request loop is free to continue processing incoming requests
2023-08-18 12:41:21 -04:00
Scott Weber
c6586f614a String extraneous whitespace from group titles 2023-08-17 13:45:19 -04:00
Scott Weber
0b40b6ed8d Change check for nil puppet 2023-08-17 13:32:51 -04:00
Scott Weber
3410938890 Fix warning 2023-08-17 12:34:10 -04:00
Scott Weber
ec994fe4c5 Undo part of double puppet fix 2023-08-17 01:42:00 -04:00
Scott Weber
dc317afe48 Fix double puppetting (at least partially) 2023-08-17 00:58:58 -04:00
Scott Weber
d8913fd523 Gotta unpad decrypted ProvisionMessage with PKCS7 2023-08-16 23:55:17 -04:00
Scott Weber
0bf1cff531 Handle 410 GONE when sending a message 2023-08-16 19:18:11 -04:00
Scott Weber
5b102b6480 Prevent panic if we can't find profileKey 2023-08-16 15:28:47 -04:00
Scott Weber
b5dc4c8a9d Don't send multiple sync messages on group message send 2023-08-15 21:20:38 -04:00
Scott Weber
7a35632eed Fix test 2023-08-15 21:20:21 -04:00
Scott Weber
1157766d10 Add stub for kyber prekey store to fix tests 2023-07-31 21:25:45 -07:00
Scott Weber
85e378eb9f Move printing content fields to separate goroutine 2023-07-31 17:43:22 -07:00
Scott Weber
f60b7dc431 Stub KyberPreKeyStore implementation to hopefully fix prekey decrypt null pointer error 2023-07-28 14:21:14 -04:00
Scott Weber
00195615da Major logging cleanup and full move to zerolog 2023-07-27 18:13:33 -04:00
Scott Weber
d1a21462ce Fix tests (note: tests are still failing due to prekey null thing) 2023-07-26 11:12:12 -04:00
Scott Weber
b0bd6e8e9f I think this fixes the prekey null pointer problem
Well enough anyway. When the old prekeyDecrypt fails due to null
pointer, fall through to sealedSenderDecrypt, which usually seems to be
able to decrypt it fine
2023-07-26 10:11:31 -04:00
Scott Weber
099a58a31b Fixes: FFI problems, logging, profile fetch error caching 2023-07-26 10:03:28 -04:00
Scott Weber
8294eedbe3 Disable routing through mitm-proxy 2023-07-24 10:49:32 -04:00
Scott Weber
d111086d44 Add puppets to portal on room creation
Also replace /0 with space in profile names
2023-07-23 16:32:17 -04:00
Scott Weber
862a875cbf Populate group chat rooms with members 2023-07-23 15:34:09 -04:00
Scott Weber
5f9c802d13 Set profile names when a message comes in 2023-07-21 16:56:42 -04:00
Scott Weber
41223f504d Cache group data and set portals with name and topic 2023-07-21 16:18:32 -04:00