| 
						 | 
						- var Buffer = require('buffer').Buffer;
 - var intSize = 4;
 - var zeroBuffer = Buffer.alloc(intSize);
 - zeroBuffer.fill(0);
 - var chrsz = 8;
 - 
 - function toArray(buf, bigEndian) {
 -   if (buf.length % intSize !== 0) {
 -     var len = buf.length + (intSize - (buf.length % intSize));
 -     buf = Buffer.concat([buf, zeroBuffer], len);
 -   }
 - 
 -   var arr = [];
 -   var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
 -   for (var i = 0; i < buf.length; i += intSize) {
 -     arr.push(fn.call(buf, i));
 -   }
 -   return arr;
 - }
 - 
 - function toBuffer(arr, size, bigEndian) {
 -   var buf = Buffer.alloc(size);
 -   var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
 -   for (var i = 0; i < arr.length; i++) {
 -     fn.call(buf, arr[i], i * 4, true);
 -   }
 -   return buf;
 - }
 - 
 - function hash(buf, fn, hashSize, bigEndian) {
 -   if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);
 -   var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
 -   return toBuffer(arr, hashSize, bigEndian);
 - }
 - 
 - module.exports = { hash: hash };
 
 
  |