aboutsummaryrefslogtreecommitdiff
path: root/node_modules/browserify-aes/modes/ctr.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-12-10 21:51:33 +0100
committerFlorian Dold <florian.dold@gmail.com>2017-12-10 21:51:33 +0100
commit0469abd4a9c9270a1fdc962969e36e63699af8b4 (patch)
treef9864d4a4148621378958794cbbfdc2393733283 /node_modules/browserify-aes/modes/ctr.js
parent6947e79bbc258f7bc96af424ddb71a511f0c15a3 (diff)
upgrade dependencies
Diffstat (limited to 'node_modules/browserify-aes/modes/ctr.js')
-rw-r--r--node_modules/browserify-aes/modes/ctr.js35
1 files changed, 17 insertions, 18 deletions
diff --git a/node_modules/browserify-aes/modes/ctr.js b/node_modules/browserify-aes/modes/ctr.js
index 0ef2278bf..e68f13c2f 100644
--- a/node_modules/browserify-aes/modes/ctr.js
+++ b/node_modules/browserify-aes/modes/ctr.js
@@ -1,29 +1,28 @@
var xor = require('buffer-xor')
-
-function incr32 (iv) {
- var len = iv.length
- var item
- while (len--) {
- item = iv.readUInt8(len)
- if (item === 255) {
- iv.writeUInt8(0, len)
- } else {
- item++
- iv.writeUInt8(item, len)
- break
- }
- }
-}
+var Buffer = require('safe-buffer').Buffer
+var incr32 = require('../incr32')
function getBlock (self) {
- var out = self._cipher.encryptBlock(self._prev)
+ var out = self._cipher.encryptBlockRaw(self._prev)
incr32(self._prev)
return out
}
+var blockSize = 16
exports.encrypt = function (self, chunk) {
- while (self._cache.length < chunk.length) {
- self._cache = Buffer.concat([self._cache, getBlock(self)])
+ var chunkNum = Math.ceil(chunk.length / blockSize)
+ var start = self._cache.length
+ self._cache = Buffer.concat([
+ self._cache,
+ Buffer.allocUnsafe(chunkNum * blockSize)
+ ])
+ for (var i = 0; i < chunkNum; i++) {
+ var out = getBlock(self)
+ var offset = start + i * blockSize
+ self._cache.writeUInt32BE(out[0], offset + 0)
+ self._cache.writeUInt32BE(out[1], offset + 4)
+ self._cache.writeUInt32BE(out[2], offset + 8)
+ self._cache.writeUInt32BE(out[3], offset + 12)
}
var pad = self._cache.slice(0, chunk.length)
self._cache = self._cache.slice(chunk.length)