17 lines
		
	
	
		
			415 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
		
			415 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var xor = require('buffer-xor')
 | 
						|
 | 
						|
function getBlock (self) {
 | 
						|
  self._prev = self._cipher.encryptBlock(self._prev)
 | 
						|
  return self._prev
 | 
						|
}
 | 
						|
 | 
						|
exports.encrypt = function (self, chunk) {
 | 
						|
  while (self._cache.length < chunk.length) {
 | 
						|
    self._cache = Buffer.concat([self._cache, getBlock(self)])
 | 
						|
  }
 | 
						|
 | 
						|
  var pad = self._cache.slice(0, chunk.length)
 | 
						|
  self._cache = self._cache.slice(chunk.length)
 | 
						|
  return xor(chunk, pad)
 | 
						|
}
 |