Re-use session objects during multi-recipient encryption.

This commit is contained in:
Clark
2023-11-27 15:20:18 -05:00
committed by Cody Henthorne
parent 59401e18ed
commit 61810cc977
11 changed files with 80 additions and 23 deletions

View File

@@ -174,12 +174,11 @@ class InMemorySignalServiceAccountDataStore : SignalServiceAccountDataStore {
sessions[address]!!.archiveCurrentState()
}
override fun getAllAddressesWithActiveSessions(addressNames: MutableList<String>): Set<SignalProtocolAddress> {
override fun getAllAddressesWithActiveSessions(addressNames: MutableList<String>): MutableMap<SignalProtocolAddress, SessionRecord> {
return sessions
.filter { it.key.name in addressNames }
.filter { it.value.isValid() }
.map { it.key }
.toSet()
.toMutableMap()
}
override fun getSenderKeySharedWith(distributionId: DistributionId): Set<SignalProtocolAddress> {

View File

@@ -156,7 +156,7 @@ class SignalClient {
SignalProtocolAddress(bob.aci.toString(), 1)
}
return cipher.encryptForGroup(distributionId, destinations, senderCertificate, content.encode(), ContentHint.DEFAULT, groupId)
return cipher.encryptForGroup(distributionId, destinations, null, senderCertificate, content.encode(), ContentHint.DEFAULT, groupId)
}
fun decryptMessage(envelope: Envelope) {