diff --git a/lib/request.js b/lib/request.js index 2a0ae903..9d435e98 100644 --- a/lib/request.js +++ b/lib/request.js @@ -50,13 +50,16 @@ const request = (ctx, userAgent, reqData) => { }) if (profile.addChecksum || profile.addMicMac) { - if (!Buffer.isBuffer(profile.salt)) { - throw new TypeError('profile.salt must be a Buffer.') + if (!Buffer.isBuffer(profile.salt) && 'string' !== typeof profile.salt) { + throw new TypeError('profile.salt must be a Buffer or a string.') } + // Buffer.from(buf, 'hex') just returns buf + const salt = Buffer.from(profile.salt, 'hex') + if (profile.addChecksum) { const checksum = md5(Buffer.concat([ Buffer.from(req.body, 'utf8'), - profile.salt + salt, ])) req.query.checksum = checksum.toString('hex') } @@ -65,7 +68,7 @@ const request = (ctx, userAgent, reqData) => { req.query.mic = mic.toString('hex') const micAsHex = Buffer.from(mic.toString('hex'), 'utf8') - const mac = md5(Buffer.concat([micAsHex, profile.salt])) + const mac = md5(Buffer.concat([micAsHex, salt])) req.query.mac = mac.toString('hex') } }