This commit add topic negotiation to the protocol. On receiving a message from a client with version >= 1, we will generate a shared key using Diffie-Hellman. We will record also which installationID has sent us a message. This key will be passed back to the above layer, which will then use to start listening to a whisper topic (the `chat` namespace has no knowledge of whisper). When sending a message to a set of InstallationIDs, we check whether we have agreed on a topic with all of them, and if so, we will send on this separate topic, otherwise we fallback on discovery. This change is backward compatible, as long as there is no downgrade of the app on the other side. A few changes: * Factored out the DB in a separate namespace as now it is being used by multiple services (TopicService and EncryptionService). * Factored out multidevice management in a separate namespace * Moved all the test to test the whole protoocl rather than just the encryption service * Moved all the filter management in status-go |
||
---|---|---|
.. | ||
benchmarks | ||
config | ||
devtests | ||
e2e | ||
helpers | ||
utils | ||
bindata.go | ||
doc.go |