diff options
Diffstat (limited to 'node_modules/browserify-aes/modes/ofb.js')
-rw-r--r-- | node_modules/browserify-aes/modes/ofb.js | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/node_modules/browserify-aes/modes/ofb.js b/node_modules/browserify-aes/modes/ofb.js new file mode 100644 index 0000000..bd87558 --- /dev/null +++ b/node_modules/browserify-aes/modes/ofb.js @@ -0,0 +1,16 @@ +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) +} |