cfb8.js 448 B

123456789101112131415
  1. function encryptByte (self, byteParam, decrypt) {
  2. var pad = self._cipher.encryptBlock(self._prev)
  3. var out = pad[0] ^ byteParam
  4. self._prev = Buffer.concat([self._prev.slice(1), new Buffer([decrypt ? byteParam : out])])
  5. return out
  6. }
  7. exports.encrypt = function (self, chunk, decrypt) {
  8. var len = chunk.length
  9. var out = new Buffer(len)
  10. var i = -1
  11. while (++i < len) {
  12. out[i] = encryptByte(self, chunk[i], decrypt)
  13. }
  14. return out
  15. }