lilia
6e758fc1ea
Randomly pad all sync messages
...
WhisperSystems/libsignal-service-java@c46cdc0aa5
// FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
20f4d48991
Protos: Move to latest iteration of verification protos
...
FREEBIE
2017-08-04 12:03:25 -07:00
lilia
4232f5711c
Handle identity key change errors on encrypt
...
We need to capture key change errors from the protocol library when we call
encrypt. Previously we would only see these on session init.
// FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
4a1dc46ab3
Fixes to get local verification and sync messages working
...
FREEBIE
2017-08-04 12:03:25 -07:00
lilia
52481d1d13
Support for sending and receiving verification sync messages
...
This adds a new method to message sender for sending verification sync messages
and a new event to message receiver representing incoming verification sync
messages. Currently the event handler just logs the message.
// FREEBIE
2017-08-04 12:03:25 -07:00
lilia
261ec003ee
Account manager calls saveIdentityWithAtttributes
...
saveIdentityWithAtttributes allows directly setting all properties of an
identity key record. In AccountManager we use it to save our own identity
key after a new registration.
Previously we would remove the existing key first in order to coerce firstUse to
true, but now we can simply set it explicitly, along with a VERIFIED status.
// FREEBIE
2017-08-04 12:03:25 -07:00
lilia
53e7e1be3a
Fix libsignal-protocol using wrong direction flag
...
// FREEBIE
2017-08-04 12:03:25 -07:00
lilia
6fdd0f1625
Handle identity errors on decrypt
...
Previously we only expected these errors to occur when decrypting prekey
messages, so we need to add handling for them in the case of a normal message.
// FREEBIE
2017-08-04 12:03:25 -07:00
lilia
2584f4fae4
Fix tests
...
// FREEBIE
2017-08-04 12:03:25 -07:00
lilia
f095a1583e
Fetch profiles whenever conversations are opened
...
For a group, fetch everyone's profile.
// FREEBIE
2017-08-04 12:03:25 -07:00
lilia
d295fa7057
Update libsignal-protocol
...
// FREEBIE
2017-08-04 12:03:25 -07:00
lilia
4e4aedd4ba
Pass in non/blockingApproval args to saveIdentity
...
Multiple cases here:
1. setting our own key on registration
1. changing identities from a safety number change dialog
Note that removeIdentityKey runs before saveIdentity, so we'll always end up
with firstUse: true on our own key.
// FREEBIE
2017-08-04 12:03:25 -07:00
lilia
22e907a8d4
Add getProfile to MessageSender
...
// FREEBIE
2017-08-04 12:03:25 -07:00
lilia
0c5a69cce4
Add support for getProfile to TextSecureServer
...
// FREEBIE
2017-08-04 12:03:25 -07:00
lilia
3afe378063
Remove legacy property from OutgoingMessage
2017-07-05 18:05:56 -07:00
lilia
d47ced1199
Don't recompute outgoing message padding
...
We can use the same padded plaintext across multiple numbers or attempts rather
than re-creating it every time we encrypt to a particular number.
// FREEBIE
2017-07-05 18:05:56 -07:00
lilia
30201969be
Inline some functions in OutgoingMessage
...
Since we no longer have legacy messages to send, we can simplify things a bit
here.
// FREEBIE
2017-07-05 18:05:56 -07:00
lilia
e8548879db
Stop sending legacy DataMessages
2017-06-20 17:57:27 -07:00
lilia
cc4d2993d1
Remove out of date test
...
This test is out of date with respect to the latest signed key rotation rules
implemented in b92dd45
and 536dd7b
. Previously we would only keep the last two
signed keys, but now we keep at least three as well as requiring a minimum
retention period. As a result, this test should be failing, but we haven't
noticed because it's not using the `done` parameter to signal its asynchronous
nature.
// FREEBIE
2017-05-29 22:28:28 -07:00
lilia
89a7875747
Remove unused function
...
This was supposed to solve the problem of losing group state after a reinstall
by inspecting member registration ids and pre-emptively sending group updates to
those who appear newly re-registered, but it has been unused since 6123c419
.
Nowadays there's a protocol for requesting lost group state from other members.
// FREEBIE
2017-05-16 15:37:05 -07:00
lilia
4842ef6153
Sync end session messages
...
// FREEBIE
2017-05-16 12:14:07 -07:00
lilia
6c53605dfd
Flag voice note attachment protos as such
...
// FREEBIE
2017-05-12 09:55:15 -07:00
lilia
6b531ad342
Fix attachment size
...
This is already a number.
// FREEBIE
2017-04-18 18:09:21 -07:00
lilia
27a1c9f18a
Populate attachment file size
...
// FREEBIE
2017-04-18 12:08:37 -07:00
lilia
fc514aa96f
Add support for attachment file names
...
Send, receive, and save attachment filenames. Use them as suggested
names when saving files.
// FREEBIE
2017-04-18 11:48:56 -07:00
lilia
a256f17e19
Cleanup attachment attributes
...
Convert attachment ids from longs to strings, and byte buffers to
arrays.
// FREEBIE
2017-04-18 11:48:53 -07:00
lilia
dcfc4701c2
Tweak socket event logging
2017-04-13 13:15:42 -07:00
lilia
26d97e621b
Update libsignal-protocol
2017-04-12 13:02:31 -07:00
lilia
a72c2968f2
Handle unknown request types
...
// FREEBIE
2017-04-07 19:35:25 -07:00
lilia
d1114edcd4
Update libsignal-protocol-javascript 1.1.10
...
// FREEBIE
2017-03-28 11:37:50 -07:00
lilia
611bbaef35
Don't hardcode the attachment server url
...
There may come a day when we may need to change this url from the server
side. On that day, clients should continue to operate normally. The
service should be able to change attachment server locations without
requiring a client update.
// FREEBIE
2017-03-10 15:24:19 -08:00
lilia
43de0cc2ec
Add attachment digests
...
// FREEBIE
2017-03-10 14:40:45 -08:00
lilia
f1a1a819ba
Stop parsing attachment ids from attachment urls
...
See 2111294
Attachment ids are now available in string form from the server
response to `putAttachment`.
// FREEBIE
2017-03-10 10:44:26 -08:00
lilia
280f7a74b1
Fix key change errors while retrying key change errors
2017-02-22 01:17:21 -08:00
lilia
e1662f8537
Drop unneeded binds
...
There are no references to `this` in these functions.
// FREEBIE
2017-02-22 01:17:21 -08:00
lilia
7cbaac5590
Provisioning socket events don't block AccountManager tasks
...
// FREEBIE
2017-02-22 01:17:21 -08:00
lilia
38a830c561
Fixup account manager task queue
...
Such that it still pumps tasks if one of them throws/rejects.
// FREEBIE
2017-02-22 01:17:20 -08:00
lilia
51131df23b
Update libsignal-protocol-javascript 1.1.9
...
// FREEBIE
2017-02-22 01:17:20 -08:00
lilia
0fac2e1d68
Log when we see a 0 registrationId
...
Most likely an indicator that the device we're dealing with is a 3rd
party client.
// FREEBIE
2017-02-20 19:03:08 -08:00
lilia
4e21e783db
Fix tests
2017-02-16 19:32:23 -08:00
lilia
b92dd45a22
Add signed key rotation and deletion routines
...
// FREEBIE
2017-02-16 18:06:19 -08:00
lilia
cd0fe7037b
Add replayable error for signed key failure
...
Disable message sending if signed key updates fail too many times, but
allow the user to retry sending.
// FREEBIE
2017-02-16 18:06:19 -08:00
lilia
37ad742ccf
Support for server endpoint to set signed key
2017-02-16 14:59:03 -08:00
lilia
dfc292ac70
Serialize prekey refreshes & other account mgmt
...
Fixes #1060
// FREEBIE
2017-02-14 15:24:09 -08:00
lilia
f0f6bbb8c0
Update libsignal-protocol 1.1.8
...
// FREEBIE
2017-02-09 10:58:36 -08:00
lilia
819ba8ee74
Support for undefined preKey
2017-02-09 10:58:36 -08:00
haffenloher
d2ddfc72e4
Throw UnregisteredUserErrors in getKeysForNumber()
2017-02-08 17:13:36 -08:00
lilia
053bf20185
Group updates never have body or attachments
...
Why would they? And group.added isn't used anywhere else.
// FREEBIE
2017-02-08 16:56:29 -08:00
haffenloher
04f0142b23
Ignore missing members in incoming group updates
...
Previously, updateNumbers would throw an Error, so the whole group
update was discarded.
Signal-Android handles this the same way in
GroupMessageProcessor.handleGroupUpdate().
Closes #1056
2017-02-08 16:46:09 -08:00
lilia
7e06e014c4
Add debug logging for #1030
...
// FREEBIE
2017-02-03 21:28:01 -08:00
lilia
73e69fe5eb
Update libsignal-protocol 1.1.7
2016-10-05 22:01:52 +09:00
lilia
7c81e4ed2e
Delete extra space
2016-10-05 21:15:58 +09:00
lilia
02ca0a09ac
Remove dead code
2016-10-05 21:11:58 +09:00
lilia
d52050d43f
Fix group timer updates
2016-10-05 19:09:20 +09:00
lilia
1da44c847b
Fix handling sent messages sans expirationStartTimestamp
2016-10-05 19:09:20 +09:00
lilia
86dbbc9f29
Allow null expireTimer in sendmessage
2016-10-05 19:09:20 +09:00
lilia
7eea88a545
Convert expirationStartTimestamp to number
2016-10-05 19:09:20 +09:00
lilia
ad2174e279
Sync expirationStartTimestamp on outgoing messages
...
Linked devices need to know when to start the clock.
2016-09-29 16:17:01 -07:00
lilia
6074a29046
Send timer update messages when changing the timer
2016-09-29 16:17:01 -07:00
lilia
824b7417e9
Apply expireTimer to outgoing messages
2016-09-29 16:17:01 -07:00
lilia
448835e4d5
Bail early when processing timer updates
...
Also let expireTimer default to 0.
2016-09-29 13:06:25 -07:00
lilia
02ea4f2475
Use read receipt envelope to infer startExpirationTime
...
Avoids display of phantom messages that are only received and marked
read locally long after they have expired on another linked device.
2016-09-28 17:20:02 -07:00
lilia
b3e932dce8
Add protocol support for disappearing messages
2016-09-28 17:20:02 -07:00
lilia
89cd40c1f5
Remove stale comment
2016-09-22 14:46:05 -07:00
lilia
0dd7ca2569
Fix tests
2016-09-22 14:35:58 -07:00
lilia
fe209a2f41
Upgrade libsignal-protocol v1.1.6
2016-09-20 13:45:21 -07:00
lilia
7b3b01bdf6
Refactor registration event
...
Make AccountManager into an event target for better separation between
app and service-library handling of registration events.
2016-09-20 13:42:33 -07:00
lilia
b1afb79a14
Set theme based on master device userAgent
...
// FREEBIE
2016-09-15 16:28:46 -07:00
lilia
2b210b3fcd
Fix undefined websocket port
...
Fixes #889
// FREEBIE
2016-09-12 11:44:52 -07:00
lilia
384598fbcc
Log websocket urls
...
// FREEBIE
2016-09-08 14:31:20 -07:00
lilia
0487fa3cd1
Add server fallback port 8443
...
// FREEBIE
2016-09-08 14:31:19 -07:00
lilia
f610233ef6
Add support for syncing blocked numbers
...
// FREEBIE
2016-09-07 13:04:45 -07:00
lilia
254b6621c2
Update libsignal-protocol v1.1.5
...
// FREEBIE
2016-08-24 01:50:46 -07:00
lilia
d11f9fd538
Update libsignal-protocol v1.1.4
...
// FREEBIE
2016-08-18 10:41:06 -07:00
lilia
4c0ed76909
Update libsignal-protocol v1.1.3
...
// FREEBIE
2016-08-01 20:19:09 -07:00
lilia
2cea499736
Reduce log noise from prekey messages
...
// FREEBIE
2016-07-28 18:39:53 -07:00
lilia
c39d6687e5
Reduce log noise from delivery receipts
...
Stop logging envelope messages on receipts since we log the same info as
a receipt in background.js.
// FREEBIE
2016-07-28 18:39:13 -07:00
lilia
005444d09a
Update libsignal-protocol v1.1.2
...
// FREEBIE
2016-06-30 12:45:27 -07:00
lilia
5059fd237a
Disable keepalive logging
...
// FREEBIE
2016-06-29 18:22:27 -07:00
lilia
80c6a2802f
Handle sync request where no groups are sent
...
If a user has no groups, no group sync message is sent. This is a normal
result that should result in a success event rather than a timeout.
// FREEBIE
2016-06-26 15:52:57 -07:00
lilia
5fcf2ea66f
Update libsignal-protocol v1.1.1
...
// FREEBIE
2016-06-23 14:17:01 -07:00
lilia
167f19153c
Update libsignal-protocol v1.1.0
...
Moves padding operations to the service library.
// FREEBIE
2016-06-14 19:30:26 -07:00
lilia
b8fddfbbdd
Update libsignal-protocol v1.0.0
...
// FREEBIE
2016-06-14 16:27:34 -07:00
lilia
d89c3e8e86
Remove devices with no keys
...
// FREEBIE
2016-06-06 17:59:44 -07:00
lilia
89d3b772d5
Define UnregisteredUserError class
...
// FREEBIE
2016-05-25 20:20:10 -07:00
lilia
81dfdd959f
Don't allow retry on unregistered user errors
...
// FREEBIE
2016-05-24 11:36:04 -07:00
lilia
331ca46d75
Fix websocket event name
...
Fixes #798
// FREEBIE
2016-05-23 16:04:06 -07:00
lilia
15e964de81
Update libsignal-protocol v0.13.0
...
* libsignal.Curve is now a synchronous interface.
* libsignal.Curve.async is now the asynchronous interface.
* Fixes bugs in session management.
// FREEBIE
2016-05-18 14:29:30 -07:00
lilia
f216262298
Update libsignal-protocol v0.12.0
...
Moves version byte check to protocol lib.
// FREEBIE
2016-05-18 13:15:58 -07:00
lilia
055c0c323e
Remove unneeded property from device object
...
// FREEBIE
2016-05-18 13:15:57 -07:00
lilia
f8e176fd40
Dedupe methods
...
Define textsecure.crypto in terms of libsignal.crypto.
// FREEBIE
2016-05-18 13:15:57 -07:00
lilia
58452066aa
Move device storage methods to outgoing message
...
This is the only place they are called.
// FREEBIE
2016-05-18 13:15:56 -07:00
lilia
daae664965
Remove unused function
...
// FREEBIE
2016-05-18 13:15:56 -07:00
lilia
d32a352d8a
Use deviceIds/addresses instead of encodedNumbers
...
The getDeviceObjectsForNumber method returns device objects that contain
nothing but the encodedNumber property. Instead, just deal in deviceIds
until a SignalProtocolAddress is constructed to manage both the number
and deviceId.
// FREEBIE
2016-05-18 13:15:55 -07:00
lilia
95935f70ee
Remove relay check from sendmessage
...
We don't currently store any relay information about devices,
and
// FREEBIE
2016-05-18 13:15:55 -07:00
lilia
f16803018c
Update libsignal-protocol v0.11.0
...
* Changes return type from decryption functions
* Update components
// FREEBIE
2016-05-18 13:15:44 -07:00
lilia
148bd32671
Update libsignal-protocol v0.10.0
...
* Changes policy for old session deletion
* Renames putIdentityKey to saveIdentity
* Remove device messages
// FREEBIE
2016-05-18 11:11:11 -07:00
lilia
ffa702c934
Update libsignal-protocol v0.9.0
...
* Exposes crypto APIs.
* Move worker methods to libsigna.worker.
* Move ProvisioningCipher to libtextsecure.
2016-05-17 12:03:37 -07:00
lilia
cd2218ada7
Move hard-coded worker url out of libtextsecure
...
// FREEBIE
2016-05-15 17:04:13 -07:00
lilia
d5f4665fa4
MessageReceiver uses SessionCipher to retry conflicts
...
// FREEBIE
2016-05-15 17:02:45 -07:00
lilia
9ecfe6acb0
Use SignalProtocolAddress in MessageReceiver constructor
...
// FREEBIE
2016-05-15 17:02:45 -07:00
lilia
213b44935d
Update libsignal-protocol v0.8.0
...
Reorder identity key check
2016-05-15 17:02:21 -07:00
lilia
eee93987f8
Update libsignal-protocol v0.7.0
...
Remove unused methods.
// FREEBIE
2016-05-14 23:39:59 -07:00
lilia
6266050a67
Remove unused jobqueue
...
// FREEBIE
2016-05-14 23:26:34 -07:00
lilia
050ea87aaf
Get device ids instead of objects
...
// FREEBIE
2016-05-14 23:26:33 -07:00
lilia
7939b6ae98
Remove hasOpenSession from protocol_wrapper
...
// FREEBIE
2016-05-14 23:26:33 -07:00
lilia
0483fa2f97
Remove closeOpenSessionForDevice from protocol_wrapper
...
// FREEBIE
2016-05-14 23:26:33 -07:00
lilia
0d5ec60a7a
Remove handlePreKeyWhisperMessage from protocol_wrapper
...
// FREEBIE
2016-05-14 23:26:32 -07:00
lilia
8010a09045
Remove decryptWhisperMessage from protocol_wrapper
...
// FREEBIE
2016-05-14 23:26:32 -07:00
lilia
891ddacd35
Remove processPreKey from protocol_wrapper
...
Use SessionBuilder directly instead of protocol_wrapper
// FREEBIE
2016-05-14 23:26:32 -07:00
lilia
843036f0ce
Remove getRegistrationId and encryptMessageFor from protocol_wrapper
...
We can now use protocol classes like SessionCipher directly because it
supports per-device read/write serialization internally.
// FREEBIE
2016-05-14 23:26:31 -07:00
lilia
284cf5be3a
Update libsignal-protocol v0.6.0
...
Adds session accessors on SessionCipher and an internal session lock to
replace the same implemented in protocol_wrapper.js
// FREEBIE
2016-05-14 23:24:34 -07:00
lilia
92293f9da9
Update libsignal-protocol v0.5.0
...
Renames libsignal.util to libsignal.KeyHelper.
// FREEBIE
2016-05-13 19:47:39 -07:00
lilia
e68031019b
Integrate libsignal.SessionCipher
...
Bypass the old protocolInstance wrapper methods and use the shiny new
SessionCipher class directly.
// FREEBIE
2016-05-12 13:13:15 -07:00
lilia
9e6ad27fc5
Update libsignal-protocol v0.4.0
...
// FREEBIE
2016-05-11 15:30:30 -07:00
lilia
418adff2a8
Rename device_storage_test.js
...
// FREEBIE
2016-05-10 19:38:44 -07:00
lilia
56238136ca
Remove trivial wrapper method
...
// FREEBIE
2016-05-10 19:38:44 -07:00
lilia
78cdc0cb52
Remove tempKeys
...
Now that we simply establish and save a session via SessionBuilder
rather than saving the keys to pass in during encrypt, we can stop
caching them in memory in between the identity key check and the
encryption step.
// FREEBIE
2016-05-10 19:38:42 -07:00
lilia
519d3ec31b
Update libsignal-protocol
...
// FREEBIE
2016-05-10 19:24:33 -07:00
lilia
9f871db48a
Update libsignal-protocol / Update prekey format
...
Integrates change in prekey object formatting, which now matches more
conveniently with the representation rendered by the server.
// FREEBIE
2016-05-04 00:33:05 -07:00
lilia
f173104c82
Tests for isTrustedIdentity
...
// FREEBIE
2016-05-04 00:25:01 -07:00
lilia
b385b6e48e
Update libsignal-protocol
...
SessionBuilder / SessionRecord refactor.
// FREEBIE
2016-05-04 00:05:37 -07:00
lilia
e659104cbf
Add isTrustedIdentity to SignalProtocolStore
...
Adds a new required storage method for the protocol library.
// FREEBIE
2016-05-03 23:58:57 -07:00
lilia
7dcaf721ca
Add keepalive logging
...
// FREEBIE
2016-04-28 11:27:15 -07:00
lilia
91bdd37019
Fix tests
...
// FREEBIE
2016-04-22 13:48:56 -07:00
lilia
b160556d6e
Change filename
...
// FREEBIE
2016-04-22 13:43:31 -07:00
lilia
9a1a3bdf64
Rename axolotl to libsignal
...
// FREEBIE
2016-04-22 13:43:30 -07:00
lilia
6bffd50009
Fix comment
...
// FREEBIE
2016-04-22 13:43:30 -07:00
lilia
1d60dc38fb
Rename axolotl storage
...
// FREEBIE
2016-04-22 13:43:30 -07:00
lilia
ee3bc11e3c
Rename axolotlInstance
...
// FREEBIE
2016-04-22 13:32:19 -07:00
lilia
0fe3497d0e
Update libsignal-protocol
...
Remove remaining refs to axolotl from lsp.
// FREEBIE
2016-04-22 13:29:31 -07:00
lilia
4169336776
Update libsignal protobuf package name
...
// FREEBIE
2016-04-21 19:30:34 -07:00
lilia
c1e1dd97ba
Change libsignal-protocol filenames
...
// FREEBIE
2016-04-21 18:42:43 -07:00
lilia
b1d370755a
Rename AxolotlStore
...
// FREEBIE
2016-04-21 18:36:17 -07:00
lilia
1fe5d63015
Update protocol libs
...
Rename storage functions
// FREEBIE
2016-04-21 18:36:16 -07:00
lilia
6a928e3377
Fix reference error in MessageReceiver from fe82e4
...
Fix a reference error when resolving a key conflict on an incoming end
session message. See Signal-Android/5438.
// FREEBIE
2016-04-18 16:01:46 -07:00
lilia
2d6d2a92b9
Update libaxolotl
...
// FREEBIE
2016-04-06 17:33:06 -07:00
lilia
af392c077d
Update libaxolotl
...
// FREEBIE
2016-04-03 14:25:30 -07:00
lilia
7e2c6fd6bc
Remove unused argument
...
// FREEBIE
2016-04-01 18:12:38 -07:00
lilia
ddcdc9e2ff
Log on prekey messages
...
// FREEBIE
2016-03-30 17:18:15 -07:00
lilia
960519d296
Add debug logging
...
// FREEBIE
2016-03-29 12:35:37 -07:00
lilia
2128ee63aa
Update libaxolotl
...
// FREEBIE
2016-03-14 11:28:53 -07:00
lilia
84235ef58e
Use forEach instead of loop
...
// FREEBIE
2016-03-13 14:15:16 -07:00
lilia
c02054d5da
Pass ciphertext as ArrayBuffer instead of string
...
// FREEBIE
2016-03-13 04:56:30 -07:00
lilia
6053fe67ba
Use built-in string conversion on protobuf
...
In lieu of a global helper.
// FREEBIE
2016-03-13 04:56:29 -07:00
lilia
3e0bce2b21
Move, rename, and simplify toArrayBuffer helper
...
This function is only ever used to convert groupIds from strings to
array buffers in sendmessage.
// FREEBIE
2016-03-13 04:56:28 -07:00
lilia
c22a205d2e
Remove unnecessary conversion from test
...
// FREEBIE
2016-03-13 04:56:28 -07:00
lilia
7dff9ac51b
Update libaxolotl
...
// FREEBIE
2016-03-13 04:56:27 -07:00
lilia
57d64fe669
Fix session corruption due to database races
...
Prevent races between encrypt and decrypt calls, and other read/write
operations on the session store by serializing session io ops per
device.
Possible fix for #535
// FREEBIE
2016-03-10 18:37:18 -08:00
lilia
5f07c74f1a
Add log statement when opening provisioning socket
...
Make it more obvious via logs which server someone is attempting to
register with (i.e., to disambiguate staging from prod).
// FREEBIE
2016-02-29 05:08:07 -08:00