aboutsummaryrefslogtreecommitdiff
path: root/node_modules/create-hash/make-hash.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/create-hash/make-hash.js')
-rw-r--r--node_modules/create-hash/make-hash.js30
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
+}