imba
Version:
19 lines (18 loc) • 517 B
JavaScript
function encryptByte(self, byteParam, decrypt) {
var pad = self._cipher.encryptBlock(self._prev);
var out = pad[0] ^ byteParam;
self._prev = Buffer.concat([
self._prev.slice(1),
Buffer.from([decrypt ? byteParam : out])
]);
return out;
}
export const encrypt = function (self, chunk, decrypt) {
var len = chunk.length;
var out = Buffer.allocUnsafe(len);
var i = -1;
while (++i < len) {
out[i] = encryptByte(self, chunk[i], decrypt);
}
return out;
};