Skip to content

Commit 2513820

Browse files
committed
fix: gen supplemental keys once for all new members
1 parent a8dd0e5 commit 2513820

File tree

3 files changed

+11
-6
lines changed

3 files changed

+11
-6
lines changed

src/groups/meta_group_wrapper.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -704,14 +704,14 @@ Napi::Value MetaGroupWrapper::generateSupplementKeys(const Napi::CallbackInfo& i
704704
uint32_t arrayLength = membersJS.Length();
705705
std::vector<std::string> membersToAdd;
706706
membersToAdd.reserve(arrayLength);
707-
std::vector<ustring> keyMessages;
708-
keyMessages.reserve(arrayLength);
707+
std::vector<std::string> membersCpp;
708+
membersCpp.reserve(arrayLength);
709709

710710
for (uint32_t i = 0; i < membersJS.Length(); i++) {
711711
auto memberPk = toCppString(membersJS[i], __PRETTY_FUNCTION__);
712-
keyMessages.push_back(this->meta_group->keys->key_supplement(memberPk));
712+
membersCpp.push_back(memberPk);
713713
}
714-
return keyMessages;
714+
return this->meta_group->keys->key_supplement(membersCpp);
715715
});
716716
}
717717

types/groups/groupkeys.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ declare module 'libsession_util_nodejs' {
1313
encryptMessages: (plaintexts: Array<Uint8Array>) => Array<Uint8Array>;
1414
decryptMessage: (ciphertext: Uint8Array) => { pubkeyHex: string; plaintext: Uint8Array };
1515
makeSwarmSubAccount: (memberPubkeyHex: PubkeyType) => Uint8ArrayLen100;
16-
generateSupplementKeys: (membersPubkeyHex: Array<PubkeyType>) => Array<Uint8Array>;
16+
generateSupplementKeys: (membersPubkeyHex: Array<PubkeyType>) => Uint8Array;
1717
swarmSubaccountSign: (
1818
message: Uint8Array,
1919
authData: Uint8ArrayLen100

types/groups/groupmembers.d.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,12 @@ declare module 'libsession_util_nodejs' {
1717
inviteFailed: boolean;
1818
promotionPending: boolean;
1919
promotionFailed: boolean;
20-
removedStatus: number; // 0 = not removed, 1 means removed, 2 means removed with messages
20+
/**
21+
* - 0 means not removed,
22+
* - 1 means removed (libsession: REMOVED_MEMBER),
23+
* - 2 means removed with messages (libsession: REMOVED_MEMBER_AND_MESSAGES)
24+
*/
25+
removedStatus: number;
2126
promoted: boolean;
2227
admin: boolean;
2328
};

0 commit comments

Comments
 (0)