Spaces:
Running
Running
| ; | |
| /** | |
| * 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 }; | |