js-crc-update
Version:
Simple CRC checksum functions for JavaScript(CRC-16 and CRC-32).
1 lines • 1.72 kB
JavaScript
!function(){"use strict";var e="object"==typeof window?window:{},n=!e.JS_CRC_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;n&&(e=global);var o,t,r,a,i=!e.JS_CRC_NO_COMMON_JS&&"object"==typeof module&&module.exports,f="function"==typeof define&&define.amd,l=!e.JS_CRC_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,c="0123456789abcdef".split(""),s=[{name:"crc128",polynom:3988292384,initValue:-1,bytes:10},{name:"crc64",polynom:3988292384,initValue:-1,bytes:6},{name:"crc32",polynom:3988292384,initValue:-1,bytes:4},{name:"crc16",polynom:40961,initValue:0,bytes:2}];for(o=0;o<s.length;++o){var u=s[o];for(u.method=function(e){return function(n){return y(n,e)}}(u),u.table=[],t=0;256>t;++t){for(a=t,r=0;8>r;++r)a=1&a?u.polynom^a>>>1:a>>>1;u.table[t]=a>>>0}}var y=function(e,n){var o="string"!=typeof e;o&&l&&e instanceof ArrayBuffer&&(e=new Uint8Array(e));var t,r,a=n.initValue,i=e.length,f=n.table;if(o)for(r=0;i>r;++r)a=f[255&(a^e[r])]^a>>>8;else for(r=0;i>r;++r)t=e.charCodeAt(r),128>t?a=f[255&(a^t)]^a>>>8:2048>t?(a=f[255&(a^(192|t>>6))]^a>>>8,a=f[255&(a^(128|63&t))]^a>>>8):55296>t||t>=57344?(a=f[255&(a^(224|t>>12))]^a>>>8,a=f[255&(a^(128|t>>6&63))]^a>>>8,a=f[255&(a^(128|63&t))]^a>>>8):(t=65536+((1023&t)<<10|1023&e.charCodeAt(++r)),a=f[255&(a^(240|t>>18))]^a>>>8,a=f[255&(a^(128|t>>12&63))]^a>>>8,a=f[255&(a^(128|t>>6&63))]^a>>>8,a=f[255&(a^(128|63&t))]^a>>>8);a^=n.initValue;var s="";return n.bytes>2&&(s+=c[a>>28&15]+c[a>>24&15]+c[a>>20&15]+c[a>>16&15]),s+=c[a>>12&15]+c[a>>8&15]+c[a>>4&15]+c[15&a]},d={};for(o=0;o<s.length;++o){var u=s[o];d[u.name]=u.method}if(i)module.exports=d;else{for(o=0;o<s.length;++o){var u=s[o];e[u.name]=u.method}f&&define(function(){return d})}}();