Add node module browserify and asar
[platform/framework/web/crosswalk-tizen.git] / node_modules / browserify / node_modules / crypto-browserify / node_modules / browserify-sign / node_modules / parse-asn1 / node_modules / browserify-aes / modes / ctr.js
1 var xor = require('buffer-xor')
2
3 function incr32 (iv) {
4   var len = iv.length
5   var item
6   while (len--) {
7     item = iv.readUInt8(len)
8     if (item === 255) {
9       iv.writeUInt8(0, len)
10     } else {
11       item++
12       iv.writeUInt8(item, len)
13       break
14     }
15   }
16 }
17
18 function getBlock (self) {
19   var out = self._cipher.encryptBlock(self._prev)
20   incr32(self._prev)
21   return out
22 }
23
24 exports.encrypt = function (self, chunk) {
25   while (self._cache.length < chunk.length) {
26     self._cache = Buffer.concat([self._cache, getBlock(self)])
27   }
28   var pad = self._cache.slice(0, chunk.length)
29   self._cache = self._cache.slice(chunk.length)
30   return xor(chunk, pad)
31 }