lilia
7e06e014c4
Add debug logging for #1030
...
// FREEBIE
9 years ago
lilia
73e69fe5eb
Update libsignal-protocol 1.1.7
9 years ago
lilia
7c81e4ed2e
Delete extra space
9 years ago
lilia
02ca0a09ac
Remove dead code
9 years ago
lilia
d52050d43f
Fix group timer updates
9 years ago
lilia
1da44c847b
Fix handling sent messages sans expirationStartTimestamp
9 years ago
lilia
86dbbc9f29
Allow null expireTimer in sendmessage
9 years ago
lilia
7eea88a545
Convert expirationStartTimestamp to number
9 years ago
lilia
ad2174e279
Sync expirationStartTimestamp on outgoing messages
...
Linked devices need to know when to start the clock.
9 years ago
lilia
6074a29046
Send timer update messages when changing the timer
9 years ago
lilia
824b7417e9
Apply expireTimer to outgoing messages
9 years ago
lilia
448835e4d5
Bail early when processing timer updates
...
Also let expireTimer default to 0.
9 years ago
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.
9 years ago
lilia
b3e932dce8
Add protocol support for disappearing messages
9 years ago
lilia
89cd40c1f5
Remove stale comment
9 years ago
lilia
0dd7ca2569
Fix tests
9 years ago
lilia
fe209a2f41
Upgrade libsignal-protocol v1.1.6
9 years ago
lilia
7b3b01bdf6
Refactor registration event
...
Make AccountManager into an event target for better separation between
app and service-library handling of registration events.
9 years ago
lilia
b1afb79a14
Set theme based on master device userAgent
...
// FREEBIE
9 years ago
lilia
2b210b3fcd
Fix undefined websocket port
...
Fixes #889
// FREEBIE
9 years ago
lilia
384598fbcc
Log websocket urls
...
// FREEBIE
9 years ago
lilia
0487fa3cd1
Add server fallback port 8443
...
// FREEBIE
9 years ago
lilia
f610233ef6
Add support for syncing blocked numbers
...
// FREEBIE
9 years ago
lilia
254b6621c2
Update libsignal-protocol v1.1.5
...
// FREEBIE
9 years ago
lilia
d11f9fd538
Update libsignal-protocol v1.1.4
...
// FREEBIE
9 years ago
lilia
4c0ed76909
Update libsignal-protocol v1.1.3
...
// FREEBIE
9 years ago
lilia
2cea499736
Reduce log noise from prekey messages
...
// FREEBIE
9 years ago
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
9 years ago
lilia
005444d09a
Update libsignal-protocol v1.1.2
...
// FREEBIE
9 years ago
lilia
5059fd237a
Disable keepalive logging
...
// FREEBIE
9 years ago
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
9 years ago
lilia
5fcf2ea66f
Update libsignal-protocol v1.1.1
...
// FREEBIE
9 years ago
lilia
167f19153c
Update libsignal-protocol v1.1.0
...
Moves padding operations to the service library.
// FREEBIE
9 years ago
lilia
b8fddfbbdd
Update libsignal-protocol v1.0.0
...
// FREEBIE
9 years ago
lilia
d89c3e8e86
Remove devices with no keys
...
// FREEBIE
9 years ago
lilia
89d3b772d5
Define UnregisteredUserError class
...
// FREEBIE
10 years ago
lilia
81dfdd959f
Don't allow retry on unregistered user errors
...
// FREEBIE
10 years ago
lilia
331ca46d75
Fix websocket event name
...
Fixes #798
// FREEBIE
10 years ago
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
10 years ago
lilia
f216262298
Update libsignal-protocol v0.12.0
...
Moves version byte check to protocol lib.
// FREEBIE
10 years ago
lilia
055c0c323e
Remove unneeded property from device object
...
// FREEBIE
10 years ago
lilia
f8e176fd40
Dedupe methods
...
Define textsecure.crypto in terms of libsignal.crypto.
// FREEBIE
10 years ago
lilia
58452066aa
Move device storage methods to outgoing message
...
This is the only place they are called.
// FREEBIE
10 years ago
lilia
daae664965
Remove unused function
...
// FREEBIE
10 years ago
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
10 years ago
lilia
95935f70ee
Remove relay check from sendmessage
...
We don't currently store any relay information about devices,
and
// FREEBIE
10 years ago
lilia
f16803018c
Update libsignal-protocol v0.11.0
...
* Changes return type from decryption functions
* Update components
// FREEBIE
10 years ago
lilia
148bd32671
Update libsignal-protocol v0.10.0
...
* Changes policy for old session deletion
* Renames putIdentityKey to saveIdentity
* Remove device messages
// FREEBIE
10 years ago
lilia
ffa702c934
Update libsignal-protocol v0.9.0
...
* Exposes crypto APIs.
* Move worker methods to libsigna.worker.
* Move ProvisioningCipher to libtextsecure.
10 years ago
lilia
cd2218ada7
Move hard-coded worker url out of libtextsecure
...
// FREEBIE
10 years ago
lilia
d5f4665fa4
MessageReceiver uses SessionCipher to retry conflicts
...
// FREEBIE
10 years ago
lilia
9ecfe6acb0
Use SignalProtocolAddress in MessageReceiver constructor
...
// FREEBIE
10 years ago
lilia
213b44935d
Update libsignal-protocol v0.8.0
...
Reorder identity key check
10 years ago
lilia
eee93987f8
Update libsignal-protocol v0.7.0
...
Remove unused methods.
// FREEBIE
10 years ago
lilia
6266050a67
Remove unused jobqueue
...
// FREEBIE
10 years ago
lilia
050ea87aaf
Get device ids instead of objects
...
// FREEBIE
10 years ago
lilia
7939b6ae98
Remove hasOpenSession from protocol_wrapper
...
// FREEBIE
10 years ago
lilia
0483fa2f97
Remove closeOpenSessionForDevice from protocol_wrapper
...
// FREEBIE
10 years ago
lilia
0d5ec60a7a
Remove handlePreKeyWhisperMessage from protocol_wrapper
...
// FREEBIE
10 years ago
lilia
8010a09045
Remove decryptWhisperMessage from protocol_wrapper
...
// FREEBIE
10 years ago
lilia
891ddacd35
Remove processPreKey from protocol_wrapper
...
Use SessionBuilder directly instead of protocol_wrapper
// FREEBIE
10 years ago
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
10 years ago
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
10 years ago
lilia
92293f9da9
Update libsignal-protocol v0.5.0
...
Renames libsignal.util to libsignal.KeyHelper.
// FREEBIE
10 years ago
lilia
e68031019b
Integrate libsignal.SessionCipher
...
Bypass the old protocolInstance wrapper methods and use the shiny new
SessionCipher class directly.
// FREEBIE
10 years ago
lilia
9e6ad27fc5
Update libsignal-protocol v0.4.0
...
// FREEBIE
10 years ago
lilia
418adff2a8
Rename device_storage_test.js
...
// FREEBIE
10 years ago
lilia
56238136ca
Remove trivial wrapper method
...
// FREEBIE
10 years ago
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
10 years ago
lilia
519d3ec31b
Update libsignal-protocol
...
// FREEBIE
10 years ago
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
10 years ago
lilia
f173104c82
Tests for isTrustedIdentity
...
// FREEBIE
10 years ago
lilia
b385b6e48e
Update libsignal-protocol
...
SessionBuilder / SessionRecord refactor.
// FREEBIE
10 years ago
lilia
e659104cbf
Add isTrustedIdentity to SignalProtocolStore
...
Adds a new required storage method for the protocol library.
// FREEBIE
10 years ago
lilia
7dcaf721ca
Add keepalive logging
...
// FREEBIE
10 years ago
lilia
91bdd37019
Fix tests
...
// FREEBIE
10 years ago
lilia
b160556d6e
Change filename
...
// FREEBIE
10 years ago
lilia
9a1a3bdf64
Rename axolotl to libsignal
...
// FREEBIE
10 years ago
lilia
6bffd50009
Fix comment
...
// FREEBIE
10 years ago
lilia
1d60dc38fb
Rename axolotl storage
...
// FREEBIE
10 years ago
lilia
ee3bc11e3c
Rename axolotlInstance
...
// FREEBIE
10 years ago
lilia
0fe3497d0e
Update libsignal-protocol
...
Remove remaining refs to axolotl from lsp.
// FREEBIE
10 years ago
lilia
4169336776
Update libsignal protobuf package name
...
// FREEBIE
10 years ago
lilia
c1e1dd97ba
Change libsignal-protocol filenames
...
// FREEBIE
10 years ago
lilia
b1d370755a
Rename AxolotlStore
...
// FREEBIE
10 years ago
lilia
1fe5d63015
Update protocol libs
...
Rename storage functions
// FREEBIE
10 years ago
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
10 years ago
lilia
2d6d2a92b9
Update libaxolotl
...
// FREEBIE
10 years ago
lilia
af392c077d
Update libaxolotl
...
// FREEBIE
10 years ago
lilia
7e2c6fd6bc
Remove unused argument
...
// FREEBIE
10 years ago
lilia
ddcdc9e2ff
Log on prekey messages
...
// FREEBIE
10 years ago
lilia
960519d296
Add debug logging
...
// FREEBIE
10 years ago
lilia
2128ee63aa
Update libaxolotl
...
// FREEBIE
10 years ago
lilia
84235ef58e
Use forEach instead of loop
...
// FREEBIE
10 years ago
lilia
c02054d5da
Pass ciphertext as ArrayBuffer instead of string
...
// FREEBIE
10 years ago
lilia
6053fe67ba
Use built-in string conversion on protobuf
...
In lieu of a global helper.
// FREEBIE
10 years ago
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
10 years ago
lilia
c22a205d2e
Remove unnecessary conversion from test
...
// FREEBIE
10 years ago
lilia
7dff9ac51b
Update libaxolotl
...
// FREEBIE
10 years ago
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
10 years ago
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
10 years ago
lilia
2b7cbef8b1
Rename a function
...
Avoid confusing this operation with actual receipts, which are something
else.
// FREEBIE
10 years ago
lilia
8fdf58971c
Add missing semicolons
...
// FREEBIE
10 years ago
lilia
c3bbdb393f
Refactor media uploading step
...
Move this to its own function which encapsulates the error handling for
it.
// FREEBIE
10 years ago
lilia
44b1a6451d
Add validation to Message class
...
// FREEBIE
10 years ago
lilia
781ada64ca
Add libtextsecure support for syncing read messages
...
Plumbing for sending and receiving a new sync protobuf for marking
messages read on/from my other devices.
// FREEBIE
10 years ago
lilia
010297f4c5
Track groups I've left
...
// FREEBIE
10 years ago
lilia
7e82d1295c
Handle attachment upload errors
...
Adds a new kind of replayable error that handles retry of pre-encryption
failures, e.g., attachment upload.
Fixes #485
// FREEBIE
10 years ago
lilia
910e37649a
Let group messages use new Message class
...
// FREEBIE
10 years ago
lilia
3bffdd96f5
Add sendMessage to handle sending from Message class
...
// FREEBIE
10 years ago
lilia
ecdfa09e97
Create a helper class for constructing messages
...
// FREEBIE
10 years ago
lilia
b73a3aea80
Fix syntax error
...
// FREEBIE
10 years ago
lilia
cee2b3163a
Add missing bind in messageReceiver
...
// FREEBIE
10 years ago
lilia
7dcad67410
Fix handleSentMessage
...
Missing a bind in 27fe7e3
.
// FREEBIE
10 years ago
lilia
d4760452d1
Add signal agent to server requests
...
// FREEBIE
10 years ago
lilia
27fe7e355e
Process end session flags in sync messages
...
Because remote clients will delete all sessions in response to an end
session message, regardless of which device it came from, when our
linked device sends an end session message, we must also end all
sessions with the destination.
This change moves the end session flag processing to processDecrypted,
which is shared between handlers of sent messages, data messages, and
messages which are re-tried after resolving identity conflicts.
// FREEBIE
10 years ago
lilia
fe82e469f2
Make end session consistent with android
...
Close all the sessions for a number when receiving an end session
message.
// FREEBIE
10 years ago
lilia
86132a38a8
Log envelopes and session end events
...
Help debug bad session errors by logging some envelope info about the
message we are about to decrypt. With this, if there is a decryption
error (e.g., bad mac or no session) it is clear from the logs what
number and device message sent the bad message.
Also log when we send and receive end session messages and when we close
sessions for certain devices.
// FREEBIE
10 years ago
lilia
7c17c5fa54
Update chai
...
// FREEBIE
10 years ago
lilia
1ee6a2e43f
Rebuild libtextsecure test components w/ new chai
...
// FREEBIE
10 years ago
lilia
a9cba1471a
Update our own key on re-install
...
Previously we would delete our own key from the trust store when
re-linking, in case it changed. We can also immediately take one step
further and store the new key. Typically this happens in the course of
requesting sync info from the master device, except in the case of
standalone clients.
Closes #596
// FREEBIE
10 years ago
lilia
30aa13079f
Fix sync request argument check
...
Fixes #609
// FREEBIE
10 years ago
lilia
d6da77b6f4
Throw exception on bad args to SyncRequest
...
// FREEBIE
10 years ago
lilia
1b68e652cc
Fire group sync completion event despite errors
...
Sometimes an error is thrown while processing groups from a group sync
message. We still want to fire the groupsync event when we're done
handling all the data, even if some of it was bad.
10 years ago
lilia
75b2c9c5de
Fix crash when removing a listener
...
// FREEBIE
10 years ago
lilia
f7c4fd2fed
DRY up event target implementations
...
Dedupe event target code and make it extensible.
// FREEBIE
10 years ago
lilia
925c1bdb33
Add SyncRequest class
...
Similar in function to an xhr request, a textsecure.SyncRequest object
is initialized from a message sender and receiver pair and initiates a
request for sync from the master device. It later fires a success event
when both contacts and groups are done syncing, or a timeout event after
one minute.
// FREEBIE
10 years ago
Karel Bilek
d8381cfc47
Dispatch an event after processing a group sync
...
Related #521
10 years ago
lilia
96520e9fd4
Move envelope decode before ack
...
We should not ack envelope protobufs that fail to decode correctly. If
the server happens to send us such a thing it probably indicates a
protocol mismatch between it and the client, in which case the client
needs to update and re-receive the failed message.
// FREEBIE
10 years ago
lilia
44824df6cb
Refactor for clarity
...
// FREEBIE
10 years ago
Matt Corallo
dac084b604
Send message ACKs immediately after recv, instead of after process
10 years ago
lilia
093eb001ff
Correct log statement
...
Although in practice, these timestamps are often the same, they needn't
be, and when they aren't, we want the sentMessage.timestamp here.
// FREEBIE
10 years ago
lilia
d95f869d62
More logging
...
// FREEBIE
10 years ago
lilia
d201c65f7c
More verbose logging in message receiver
...
// FREEBIE
10 years ago
lilia
bc576e18d5
Fix no delivery receipts on close session messages
...
// FREEBIE
10 years ago
lilia
9031b4c10c
Update libaxolotl
...
Fixes #477
// FREEBIE
10 years ago
lilia
ea980b4385
Don't surface invalid attachment urls to the user
...
Log them, but don't put display them in user-facing error ui.
// FREEBIE
10 years ago
lilia
7b1268e5f7
Log incoming invalid attachment urls also
...
Same as previous commit but for incoming.
// FREEBIE
10 years ago
lilia
fe7505c050
Log invalid attachment urls
...
// FREEBIE
10 years ago
lilia
9c59dfda93
Remove duplicate case statement
...
This line was never being hit due to the duplicate one above (#L166).
Peeking at the server code shows that 403 is only given in response to
registration attempts, where it does in fact indicate an invalid code.
// FREEBIE
10 years ago
lilia
2f469835d9
Handle group quit sync messages
...
Previously, we would incorrectly reject group updates originating from a
linked device instructing us to remove ourselves from the group.
// FREEBIE
10 years ago
lilia
edcb28aebb
Don't save a MessageCounterError
...
Fixes #446
// FREEBIE
10 years ago
lilia
b00d5289cf
Save message timestamp for resending
...
Fix bug where resending due to failed network connection would fail
silently.
Broken in 7b6820 refactor which changed arguments to transmitMessage
// FREEBIE
10 years ago
lilia
e9949152bb
Always return a promise from sendSyncMessage
...
// FREEBIE
10 years ago
lilia
acae4afce3
Handle invalid responses better
...
Depending on the response code, returning an HTTPError here will let us
retry later, if appropriate.
// FREEBIE
10 years ago
lilia
52b039a900
Remove unused function
...
This is now used only internally in libaxolotl, which provides its own
definition.
// FREEBIE
10 years ago
lilia
6445581594
Update libaxolotl
...
isEqual added to internal helper module
// FREEBIE
10 years ago
lilia
63cd3b2788
Use constant time mac comparison
...
In libtextsecure and in libaxolotl.
// FREEBIE
10 years ago
lilia
61439a886f
Validate json responses
...
Perform lightweight validation on json responses from the server. Ensure
that the attributes we depend on have the right type.
// FREEBIE
10 years ago
lilia
b0d4370c2c
Remove unused variable
...
// FREEBIE
10 years ago