MemberPendingProfileKey can't have profile key
This commit is contained in:
parent
702153a28d
commit
e3d27bd00e
1 changed files with 5 additions and 48 deletions
51
ts/groups.ts
51
ts/groups.ts
|
@ -4953,13 +4953,6 @@ async function applyGroupChange({
|
||||||
timestamp: added.timestamp,
|
timestamp: added.timestamp,
|
||||||
role: added.member.role || MEMBER_ROLE_ENUM.DEFAULT,
|
role: added.member.role || MEMBER_ROLE_ENUM.DEFAULT,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (added.member && added.member.profileKey) {
|
|
||||||
newProfileKeys.push({
|
|
||||||
profileKey: added.member.profileKey,
|
|
||||||
uuid: addedUuid,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// deletePendingMembers?: Array<
|
// deletePendingMembers?: Array<
|
||||||
|
@ -5597,21 +5590,7 @@ async function applyGroupState({
|
||||||
}
|
}
|
||||||
|
|
||||||
const previousMember = pendingMembers[member.member.userId];
|
const previousMember = pendingMembers[member.member.userId];
|
||||||
if (
|
|
||||||
member.member.profileKey &&
|
|
||||||
(!previousMember ||
|
|
||||||
profileKeyHasChanged(
|
|
||||||
member.member.userId,
|
|
||||||
member.member.profileKey
|
|
||||||
))
|
|
||||||
) {
|
|
||||||
newProfileKeys.push({
|
|
||||||
profileKey: member.member.profileKey,
|
|
||||||
uuid: UUID.cast(member.member.userId),
|
|
||||||
});
|
|
||||||
} else if (!previousMember) {
|
|
||||||
otherChanges = true;
|
otherChanges = true;
|
||||||
}
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
previousMember &&
|
previousMember &&
|
||||||
|
@ -6824,7 +6803,6 @@ type DecryptedMemberPendingProfileKey = {
|
||||||
timestamp: number;
|
timestamp: number;
|
||||||
member: {
|
member: {
|
||||||
userId: string;
|
userId: string;
|
||||||
profileKey?: Uint8Array;
|
|
||||||
role?: Proto.Member.Role;
|
role?: Proto.Member.Role;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -6873,6 +6851,10 @@ function decryptMemberPendingProfileKey(
|
||||||
}
|
}
|
||||||
|
|
||||||
const { userId, profileKey } = member.member;
|
const { userId, profileKey } = member.member;
|
||||||
|
strictAssert(
|
||||||
|
Bytes.isEmpty(profileKey),
|
||||||
|
'decryptMemberPendingProfileKey: member has profileKey'
|
||||||
|
);
|
||||||
|
|
||||||
// userId
|
// userId
|
||||||
strictAssert(
|
strictAssert(
|
||||||
|
@ -6902,30 +6884,6 @@ function decryptMemberPendingProfileKey(
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
// profileKey
|
|
||||||
let decryptedProfileKey: Uint8Array | undefined;
|
|
||||||
if (Bytes.isNotEmpty(profileKey)) {
|
|
||||||
try {
|
|
||||||
decryptedProfileKey = decryptProfileKey(
|
|
||||||
clientZkGroupCipher,
|
|
||||||
profileKey,
|
|
||||||
UUID.cast(decryptedUserId)
|
|
||||||
);
|
|
||||||
} catch (error) {
|
|
||||||
log.warn(
|
|
||||||
`decryptMemberPendingProfileKey/${logId}: Unable to decrypt pending member profileKey. Dropping profileKey.`,
|
|
||||||
Errors.toLogFormat(error)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isValidProfileKey(decryptedProfileKey)) {
|
|
||||||
log.warn(
|
|
||||||
`decryptMemberPendingProfileKey/${logId}: Dropping profileKey, since it was invalid`
|
|
||||||
);
|
|
||||||
decryptedProfileKey = undefined;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// role
|
// role
|
||||||
const role = dropNull(member.member.role);
|
const role = dropNull(member.member.role);
|
||||||
|
|
||||||
|
@ -6939,7 +6897,6 @@ function decryptMemberPendingProfileKey(
|
||||||
timestamp,
|
timestamp,
|
||||||
member: {
|
member: {
|
||||||
userId: decryptedUserId,
|
userId: decryptedUserId,
|
||||||
profileKey: decryptedProfileKey,
|
|
||||||
role,
|
role,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Reference in a new issue