libsignal-protocol-javascript
libsignal-protocol-javascript copied to clipboard
Group Code is MIssing
As we have Group Code in libsignal-protocol-java for GroupCipher GroupSessionBuidler When we will have it for javascript
any news here?
+1
Maybe if you could talk about what scenarios are missing, what problems you're having, that would better motivate this bug. Signal Desktop deals with groups just fine, and uses this core library.
It's been a while since I looked into this but doesn't Signal Desktop encrypt and transmit a separate copy of each message for every recipient device? So while that works for small groups it wouldn't be appropriate for large ones.
@vith have read my mind, thanks!
@vith Android does the same thing, sending to each group. This is necessary, because the server currently has no information regarding groups. The difference, then, is that the necessary logic to send to a group is encapsulated within those classes in the Java library. But you can get the same ultimate functionality with this library, so it's not a blocker.
@scottnonnenberg-signal If I am not mistaken there is more than just client-side fan-out logic in the Java classes. It looks like a separate ratchet for unidirectional, one-to-many group sessions to enable server-side fan-out:
https://github.com/signalapp/libsignal-protocol-java/blob/master/java/src/main/java/org/whispersystems/libsignal/groups/GroupCipher.java
https://github.com/signalapp/libsignal-protocol-java/blob/master/java/src/main/java/org/whispersystems/libsignal/groups/ratchet/SenderChainKey.java
I think some confusion has occurred because of lack of context --- it's my understanding that the group sessions aren't used in Signal today, but I think something similar is used in other products like WhatsApp, Facebook Messenger, Allo, Wire, Matrix, etc. to support larger group sizes.
At least in my case (I can't speak for others in this issue) I was considering using libsignal for encryption in a context that wouldn't use the official Signal service/backend.
Of course I don't expect you guys to port the group session implementation to javascript if you aren't using it in Signal... I was just following this issue in case that ever changed :)
@scottnonnenberg-signal When support GroupCipher?