libsignal-protocol-javascript icon indicating copy to clipboard operation
libsignal-protocol-javascript copied to clipboard

Group Code is MIssing

Open izhar-ap opened this issue 9 years ago • 8 comments
trafficstars

As we have Group Code in libsignal-protocol-java for GroupCipher GroupSessionBuidler When we will have it for javascript

izhar-ap avatar Nov 02 '16 06:11 izhar-ap

any news here?

chuprik avatar Jun 27 '18 09:06 chuprik

+1

ivanlemeshev avatar Jun 27 '18 09:06 ivanlemeshev

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.

scottnonnenberg-signal avatar Jun 27 '18 16:06 scottnonnenberg-signal

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 avatar Jun 27 '18 17:06 vith

@vith have read my mind, thanks!

chuprik avatar Jun 27 '18 17:06 chuprik

@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 avatar Jul 03 '18 16:07 scottnonnenberg-signal

@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 :)

vith avatar Jul 03 '18 17:07 vith

@scottnonnenberg-signal When support GroupCipher?

SeniorZhai avatar Jul 10 '18 11:07 SeniorZhai