Update 'MultiDeviceAnnouncementsBlob'

emdee 2022-09-22 01:07:26 +02:00
parent 4243b10a3e
commit 54e6b96736

@ -8,9 +8,9 @@ It has these charachteristics:
2) It is small - 1K to 4K in size.
3) The name is related to an derivable from the PersonaID - say the name is the PersonaID for now.
3) The name is related to, and derivable from, the PersonaID - say the name is the PersonaID for now.
4) It it pushed regularly so people can get the PersonaID relatively soon - say hourly for now.
4) It it pushed regularly so people can get the PersonaID relatively soon - say hourly for now. Any longer means a person who has not connected to that friend before has to wait longer if they only have a PersonaID.
5) It is encrypted so that the contents can not be seen in transit.
@ -18,9 +18,9 @@ It has these charachteristics:
So here is a best guess of how the encryption works. I'm not a crypto guy, so please take it with a grain of salt and help with suggestions.
The blob is intended to be the mapping to an active ToxID, and could be a mapping to a set of ToxIDs, the set of that Personas devices, with one marked active. This set of ToxIDs could be keys that open the encrypted blob. Anyone who already has a ToxID of the Persona could open the blob to get the update.
The blob is intended to be the mapping to an active ToxID, and could be a mapping to a set of ToxIDs, the set of that Personas devices, with one marked active. This set of ToxIDs could be keys that open the encrypted blob. Anyone who already has a ToxID of the Persona could open the blob to get the update. So this encryption is different from most Tox encryption in that multiple keys can open it.
Unknown for now is does the client have to send an add request to the new ToxID to make it active?
Unknown for now is does the client have to send an add request to the new ToxID to make it active if they have never seen it before?
Either way the clients would manage this seemlessly to aggregate the two ToxIDs together under one Persona that is shown to the user.
Either way the clients would manage this seemlessly to aggregate the two ToxIDs together under one Persona that is shown to the user. The library does most of this by accepting the update from the blob to update the table pointing from PersonaID to ToxID.