diff options
Diffstat (limited to 'utils/lib/crc32.js')
-rwxr-xr-x | utils/lib/crc32.js | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/utils/lib/crc32.js b/utils/lib/crc32.js deleted file mode 100755 index 71a9443..0000000 --- a/utils/lib/crc32.js +++ /dev/null @@ -1,60 +0,0 @@ - -var util = require('./util'); - -/*** polynomials -*/ -exports.polynomials = { - 'ieee802_3': 0xEDB88320, - 'castagnoli': 0x82F63B78, - 'kooperman': 0xEB31D82E -}; - -/*** Table -*/ -exports.Table = function (polynomial) { - var term, table = []; - for (var i = 0; i < 256; i++) { - term = i; - for (var j = 0; j < 8; j++) { - if (term & 1) - term = (term >>> 1) ^ polynomial; - else - term = term >>> 1; - } - table[i] = term; - } - return table; -}; - -/*** table -*/ -exports.table = exports.Table(exports.polynomials.ieee802_3); - -/*** hash - returns the crc32 hash for a string as an integer. -*/ -exports.hash = function (bin, table) { - if (util.no(table)) - table = exports.table; - var crc = 0xFFFFFFFF; - for (var i = 0; i < bin.length; i ++) { - var x = bin.charCodeAt(i); - if (x & ~0xFF) - throw new Error( - "crc32 can only encode strings of bytes. " + - "Consider using utf8.js#encode." - ); - crc = (crc >>> 8) ^ table[x ^ (crc & 0xFF)]; - } - return ~crc; -}; - -/* - - References - ========== - - http://www.webtoolkit.info/ - Javascript crc32 - -*/ |