- prekeys
- SessionCipher
- LokiCipher
- endSession and the reset Session logic
- what we called Sessionprotocol manager (to keep track of session with
everyone)
now we do as followed:
• Generate 16 bytes of random data
• Add 16 bytes of zeros
• Use the 16 bytes of random + 16 bytes of zeros to generate an ED25519 key pair
• Convert the ED25519 key pair to an X25519 key pair
All of this is happening with libsodiumm called over IPC
This is the reason that seeds across desktop and mobile devices would never restore to the same keypair. This function was there from the initial messenger days and with further discussion with Maxim, we deemed calling this function an unnecessary step for generating a keypair. There are no security implications for this change as we generate keypairs the exact same way as Signal does.
The biggest downside to this change however is that if you try to restore a desktop device with a seed from before this change, that seed will generate a completely different key pair and thus a different session ID.
This will only affect users who plan to restore any device from the seed of a desktop device before this change.
* clearnet: (35 commits)
yarn lint
return early if signature is not a string
lint pass 2
lint pass 1
make sure versioning on write can't get out of sync
Update js/modules/loki_public_chat_api.js
Handle annotations omit correctly
fix typo CI found
refactor
pollOnceForMessages() move lastGot up, address Sacha's review
Update js/modules/loki_public_chat_api.js
address review
address reviews
Custom message rendering of mentions
fix method
separate out new/open, more lint/cleanup
separate out note to self
create window.mixpanel here
use window.mixpanel, remove eventEmitter
lint and remove unneeded params
...