Fix: prevent zero padding in writeRandomPadMax16 causing message delivery failures (#1706)
This commit is contained in:
@@ -70,14 +70,9 @@ export const getKeyAuthor = (key: proto.IMessageKey | undefined | null, meId = '
|
|||||||
|
|
||||||
export const writeRandomPadMax16 = (msg: Uint8Array) => {
|
export const writeRandomPadMax16 = (msg: Uint8Array) => {
|
||||||
const pad = randomBytes(1)
|
const pad = randomBytes(1)
|
||||||
|
const padLength = (pad[0]! & 0x0f) + 1
|
||||||
|
|
||||||
if (pad[0]) {
|
return Buffer.concat([msg, Buffer.alloc(padLength, padLength)])
|
||||||
pad[0] &= 0xf
|
|
||||||
} else {
|
|
||||||
pad[0] = 0xf
|
|
||||||
}
|
|
||||||
|
|
||||||
return Buffer.concat([msg, Buffer.alloc(pad[0], pad[0])])
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const unpadRandomMax16 = (e: Uint8Array | Buffer) => {
|
export const unpadRandomMax16 = (e: Uint8Array | Buffer) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user