From f4da9af5d360e2dd9763368c18a22d2f330810d6 Mon Sep 17 00:00:00 2001 From: Adhiraj Singh Date: Tue, 12 Apr 2022 17:04:24 +0530 Subject: [PATCH] chore: use only numbers in message tag --- src/Socket/socket.ts | 5 ++--- src/Utils/generics.ts | 6 ++++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Socket/socket.ts b/src/Socket/socket.ts index edac1ed..8285af2 100644 --- a/src/Socket/socket.ts +++ b/src/Socket/socket.ts @@ -1,12 +1,11 @@ import { Boom } from '@hapi/boom' -import { randomBytes } from 'crypto' import EventEmitter from 'events' import { promisify } from 'util' import WebSocket from 'ws' import { proto } from '../../WAProto' import { DEF_CALLBACK_PREFIX, DEF_TAG_PREFIX, DEFAULT_ORIGIN, KEY_BUNDLE_TYPE } from '../Defaults' import { AuthenticationCreds, BaileysEventEmitter, BaileysEventMap, DisconnectReason, SocketConfig } from '../Types' -import { addTransactionCapability, bindWaitForConnectionUpdate, configureSuccessfulPairing, Curve, encodeBigEndian, generateLoginNode, generateOrGetPreKeys, generateRegistrationNode, getPreKeys, makeNoiseHandler, printQRIfNecessaryListener, promiseTimeout, useSingleFileAuthState, xmppPreKey, xmppSignedPreKey } from '../Utils' +import { addTransactionCapability, bindWaitForConnectionUpdate, configureSuccessfulPairing, Curve, encodeBigEndian, generateLoginNode, generateMdTagPrefix, generateOrGetPreKeys, generateRegistrationNode, getPreKeys, makeNoiseHandler, printQRIfNecessaryListener, promiseTimeout, useSingleFileAuthState, xmppPreKey, xmppSignedPreKey } from '../Utils' import { assertNodeErrorFree, BinaryNode, encodeBinaryNode, getBinaryNodeChild, S_WHATSAPP_NET } from '../WABinary' const INITIAL_PREKEY_COUNT = 30 @@ -68,7 +67,7 @@ export const makeSocket = ({ let keepAliveReq: NodeJS.Timeout let qrTimer: NodeJS.Timeout - const uqTagId = `${randomBytes(1).toString('hex')[0]}.${randomBytes(1).toString('hex')[0]}-` + const uqTagId = generateMdTagPrefix() const generateMessageTag = () => `${uqTagId}${epoch++}` const sendPromise = promisify(ws.send) diff --git a/src/Utils/generics.ts b/src/Utils/generics.ts index 2dc34c5..7827376 100644 --- a/src/Utils/generics.ts +++ b/src/Utils/generics.ts @@ -255,6 +255,12 @@ export const fetchLatestBaileysVersion = async() => { } } +/** unique message tag prefix for MD clients */ +export const generateMdTagPrefix = () => { + const bytes = randomBytes(2) + return `${bytes[0]}.${bytes[1]}-` +} + const STATUS_MAP: { [_: string]: proto.WebMessageInfo.WebMessageInfoStatus } = { 'played': proto.WebMessageInfo.WebMessageInfoStatus.PLAYED, 'read': proto.WebMessageInfo.WebMessageInfoStatus.READ,