Open neekolas opened 10 months ago
We had a great conversation today about how this could be implemented and decided with a solution to derive a key from the user using private preferences. This will all take place in the SDK level and shouldn't include libxmtp changes.
The main take away is that this will not be a breaking change and this can be moved to a nice to have for group chat.
Tasks
More info about private preferences in V2, used to store consent state (whether a given conversation should be hidden or shown, e.g. if it is spam that we don't want): https://community.xmtp.org/t/xip-42-universal-allow-and-block-preferences/544
Private preferences are simply a way of synchronizing state for a user, regardless of how many apps/installations they log onto.
We need to make sure the message history server backing this syncs automatically in instances where other installations are online.
Emulate the HMAC support currently for V2 Conversations for Groups.
client.conversations.getHmacKeys()
that returns the protoGetConversationHmacKeysResponse
Hkdf.computeHkdf("HMACSHA256", secret, salt, info, 32)
where the secret is the conversation key material