diff --git a/CHANGELOG.md b/CHANGELOG.md index 4385d9e8..1620144c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## [0.29.6] 22nd May 2024 +- feat: hide _makeNewSenderKey and expose a new preShareKey function (td) + ## [0.29.5] 22nd May 2024 - feat: make voip key generator public (td) diff --git a/lib/src/voip/backend/livekit_backend.dart b/lib/src/voip/backend/livekit_backend.dart index 25bd0d25..87238c31 100644 --- a/lib/src/voip/backend/livekit_backend.dart +++ b/lib/src/voip/backend/livekit_backend.dart @@ -52,11 +52,16 @@ class LiveKitBackend extends CallBackend { return newIndex; } + Future preShareKey(GroupCallSession groupCall) async { + await groupCall.onMemberStateChanged(); + await _makeNewSenderKey(groupCall, false); + } + /// makes a new e2ee key for local user and sets it with a delay if specified /// used on first join and when someone leaves /// /// also does the sending for you - Future makeNewSenderKey( + Future _makeNewSenderKey( GroupCallSession groupCall, bool delayBeforeUsingKeyOurself) async { final key = secureRandomBytes(32); final keyIndex = _getNewEncryptionKeyIndex(); @@ -87,7 +92,7 @@ class LiveKitBackend extends CallBackend { final myKeys = _encryptionKeysMap[groupCall.localParticipant]; if (myKeys == null || myKeys.isEmpty) { - await makeNewSenderKey(groupCall, false); + await _makeNewSenderKey(groupCall, false); return; } @@ -186,7 +191,7 @@ class LiveKitBackend extends CallBackend { if (myKeys == null || myLatestKey == null) { Logs().w( '[VOIP E2EE] _sendEncryptionKeysEvent Tried to send encryption keys event but no keys found!'); - await makeNewSenderKey(groupCall, false); + await _makeNewSenderKey(groupCall, false); await _sendEncryptionKeysEvent( groupCall, keyIndex, @@ -392,7 +397,7 @@ class LiveKitBackend extends CallBackend { if (groupCall.voip.enableSFUE2EEKeyRatcheting) { await _ratchetLocalParticipantKey(groupCall, anyJoined); } else { - await makeNewSenderKey(groupCall, true); + await _makeNewSenderKey(groupCall, true); } } @@ -409,7 +414,7 @@ class LiveKitBackend extends CallBackend { } _memberLeaveEncKeyRotateDebounceTimer = Timer(CallTimeouts.makeKeyDelay, () async { - await makeNewSenderKey(groupCall, true); + await _makeNewSenderKey(groupCall, true); }); } diff --git a/pubspec.yaml b/pubspec.yaml index 51dca7d1..3cf53a61 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: matrix description: Matrix Dart SDK -version: 0.29.5 +version: 0.29.6 homepage: https://famedly.com repository: https://github.com/famedly/matrix-dart-sdk.git issue_tracker: https://github.com/famedly/matrix-dart-sdk/issues