diff options
Diffstat (limited to 'node_modules/create-hash/make-hash.js')
-rw-r--r-- | node_modules/create-hash/make-hash.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/node_modules/create-hash/make-hash.js b/node_modules/create-hash/make-hash.js new file mode 100644 index 000000000..c9f786276 --- /dev/null +++ b/node_modules/create-hash/make-hash.js @@ -0,0 +1,30 @@ +'use strict' +var intSize = 4 +var zeroBuffer = new Buffer(intSize) +zeroBuffer.fill(0) + +var charSize = 8 +var hashSize = 16 + +function toArray (buf) { + if ((buf.length % intSize) !== 0) { + var len = buf.length + (intSize - (buf.length % intSize)) + buf = Buffer.concat([buf, zeroBuffer], len) + } + + var arr = new Array(buf.length >>> 2) + for (var i = 0, j = 0; i < buf.length; i += intSize, j++) { + arr[j] = buf.readInt32LE(i) + } + + return arr +} + +module.exports = function hash (buf, fn) { + var arr = fn(toArray(buf), buf.length * charSize) + buf = new Buffer(hashSize) + for (var i = 0; i < arr.length; i++) { + buf.writeInt32LE(arr[i], i << 2, true) + } + return buf +} |