Class GroupCipher
- java.lang.Object
-
- org.signal.libsignal.protocol.groups.GroupCipher
-
public class GroupCipher extends java.lang.ObjectThe main entry point for Signal Protocol group encrypt/decrypt operations. Once a session has been established withGroupSessionBuilderand aSenderKeyDistributionMessagehas been distributed to each member of the group, this class can be used for all subsequent encrypt/decrypt operations within that session (ie: until group membership changes). This class is not thread-safe.
-
-
Constructor Summary
Constructors Constructor Description GroupCipher(SenderKeyStore senderKeyStore, SignalProtocolAddress sender)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]decrypt(byte[] senderKeyMessageBytes)Decrypt a SenderKey group message.CiphertextMessageencrypt(java.util.UUID distributionId, byte[] paddedPlaintext)Encrypt a message.
-
-
-
Constructor Detail
-
GroupCipher
public GroupCipher(SenderKeyStore senderKeyStore, SignalProtocolAddress sender)
-
-
Method Detail
-
encrypt
public CiphertextMessage encrypt(java.util.UUID distributionId, byte[] paddedPlaintext) throws NoSessionException
Encrypt a message.- Parameters:
paddedPlaintext- The plaintext message bytes, optionally padded.- Returns:
- Ciphertext.
- Throws:
NoSessionException
-
decrypt
public byte[] decrypt(byte[] senderKeyMessageBytes) throws LegacyMessageException, DuplicateMessageException, InvalidMessageException, NoSessionExceptionDecrypt a SenderKey group message.- Parameters:
senderKeyMessageBytes- The received ciphertext.- Returns:
- Plaintext
- Throws:
LegacyMessageExceptionInvalidMessageExceptionDuplicateMessageExceptionNoSessionException
-
-