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)
 | |
| }
 |