| var aes = require('./aes') | 
| var Buffer = require('safe-buffer').Buffer | 
| var Transform = require('cipher-base') | 
| var inherits = require('inherits') | 
|   | 
| function StreamCipher (mode, key, iv, decrypt) { | 
|   Transform.call(this) | 
|   | 
|   this._cipher = new aes.AES(key) | 
|   this._prev = Buffer.from(iv) | 
|   this._cache = Buffer.allocUnsafe(0) | 
|   this._secCache = Buffer.allocUnsafe(0) | 
|   this._decrypt = decrypt | 
|   this._mode = mode | 
| } | 
|   | 
| inherits(StreamCipher, Transform) | 
|   | 
| StreamCipher.prototype._update = function (chunk) { | 
|   return this._mode.encrypt(this, chunk, this._decrypt) | 
| } | 
|   | 
| StreamCipher.prototype._final = function () { | 
|   this._cipher.scrub() | 
| } | 
|   | 
| module.exports = StreamCipher |