Spaces:
Sleeping
Sleeping
; | |
/** | |
* Masks a buffer using the given mask. | |
* | |
* @param {Buffer} source The buffer to mask | |
* @param {Buffer} mask The mask to use | |
* @param {Buffer} output The buffer where to store the result | |
* @param {Number} offset The offset at which to start writing | |
* @param {Number} length The number of bytes to mask. | |
* @public | |
*/ | |
const mask = (source, mask, output, offset, length) => { | |
for (var i = 0; i < length; i++) { | |
output[offset + i] = source[i] ^ mask[i & 3]; | |
} | |
}; | |
/** | |
* Unmasks a buffer using the given mask. | |
* | |
* @param {Buffer} buffer The buffer to unmask | |
* @param {Buffer} mask The mask to use | |
* @public | |
*/ | |
const unmask = (buffer, mask) => { | |
// Required until https://github.com/nodejs/node/issues/9006 is resolved. | |
const length = buffer.length; | |
for (var i = 0; i < length; i++) { | |
buffer[i] ^= mask[i & 3]; | |
} | |
}; | |
module.exports = { mask, unmask }; | |