You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
js-sha256/build/sha256.min.js

9 lines
8.7 KiB
JavaScript

/**
* [js-sha256]{@link https://github.com/emn178/js-sha256}
*
* @version 0.9.0
* @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2014-2017
* @license MIT
*/
!function(){"use strict";var y="input is invalid type",t="object"==typeof window,i=t?window:{};i.JS_SHA256_NO_WINDOW&&(t=!1);var h=!t&&"object"==typeof self,s=!i.JS_SHA256_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;s?i=global:h&&(i=self);var r=!i.JS_SHA256_NO_COMMON_JS&&"object"==typeof module&&module.exports,e="function"==typeof define&&define.amd,p=!i.JS_SHA256_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,f="0123456789abcdef".split(""),n=[-2147483648,8388608,32768,128],o=[24,16,8,0],b=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],a=["hex","array","digest","arrayBuffer"],u=[];!i.JS_SHA256_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),!p||!i.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return"object"==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});var c=function(i,h){return function(t){return new v(h,!0).update(t)[i]()}},l=function(t){var i=c("hex",t);s&&(i=d(i,t)),i.create=function(){return new v(t)},i.update=function(t){return i.create().update(t)};for(var h=0;h<a.length;++h){var r=a[h];i[r]=c(r,t)}return i},d=function(i,t){var h=eval("require('crypto')"),r=eval("require('buffer').Buffer"),s=t?"sha224":"sha256",e=function(t){if("string"==typeof t)return h.createHash(s).update(t,"utf8").digest("hex");if(null==t)throw new Error(y);return t.constructor===ArrayBuffer&&(t=new Uint8Array(t)),Array.isArray(t)||ArrayBuffer.isView(t)||t.constructor===r?h.createHash(s).update(new r(t)).digest("hex"):i(t)};return e},A=function(h,r){return function(t,i){return new _(t,r,!0).update(i)[h]()}},w=function(i){var h=A("hex",i);h.create=function(t){return new _(t,i)},h.update=function(t,i){return h.create(t).update(i)};for(var t=0;t<a.length;++t){var r=a[t];h[r]=A(r,i)}return h};function v(t,i){i?(u[0]=u[16]=u[1]=u[2]=u[3]=u[4]=u[5]=u[6]=u[7]=u[8]=u[9]=u[10]=u[11]=u[12]=u[13]=u[14]=u[15]=0,this.blocks=u):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=t}function _(t,i,h){var r,s=typeof t;if("string"===s){var e,n=[],a=t.length,o=0;for(r=0;r<a;++r)(e=t.charCodeAt(r))<128?n[o++]=e:(e<2048?n[o++]=192|e>>6:(e<55296||57344<=e?n[o++]=224|e>>12:(e=65536+((1023&e)<<10|1023&t.charCodeAt(++r)),n[o++]=240|e>>18,n[o++]=128|e>>12&63),n[o++]=128|e>>6&63),n[o++]=128|63&e);t=n}else{if("object"!==s)throw new Error(y);if(null===t)throw new Error(y);if(p&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||p&&ArrayBuffer.isView(t)))throw new Error(y)}64<t.length&&(t=new v(i,!0).update(t).array());var f=[],u=[];for(r=0;r<64;++r){var c=t[r]||0;f[r]=92^c,u[r]=54^c}v.call(this,i,h),this.update(u),this.oKeyPad=f,this.inner=!0,this.sharedMemory=h}v.prototype.update=function(t){if(!this.finalized){var i,h=typeof t;if("string"!==h){if("object"!==h)throw new Error(y);if(null===t)throw new Error(y);if(p&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||p&&ArrayBuffer.isView(t)))throw new Error(y);i=!0}for(var r,s,e=0,n=t.length,a=this.blocks;e<n;){if(this.hashed&&(this.hashed=!1,a[0]=this.block,a[16]=a[1]=a[2]=a[3]=a[4]=a[5]=a[6]=a[7]=a[8]=a[9]=a[10]=a[11]=a[12]=a[13]=a[14]=a[15]=0),i)for(s=this.start;e<n&&s<64;++e)a[s>>2]|=t[e]<<o[3&s++];else for(s=this.start;e<n&&s<64;++e)(r=t.charCodeAt(e))<128?a[s>>2]|=r<<o[3&s++]:(r<2048?a[s>>2]|=(192|r>>6)<<o[3&s++]:(r<55296||57344<=r?a[s>>2]|=(224|r>>12)<<o[3&s++]:(r=65536+((1023&r)<<10|1023&t.charCodeAt(++e)),a[s>>2]|=(240|r>>18)<<o[3&s++],a[s>>2]|=(128|r>>12&63)<<o[3&s++]),a[s>>2]|=(128|r>>6&63)<<o[3&s++]),a[s>>2]|=(128|63&r)<<o[3&s++]);this.lastByteIndex=s,this.bytes+=s-this.start,64<=s?(this.block=a[16],this.start=s-64,this.hash(),this.hashed=!0):this.start=s}return 4294967295<this.bytes&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},v.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,i=this.lastByteIndex;t[16]=this.block,t[i>>2]|=n[3&i],this.block=t[16],56<=i&&(this.hashed||this.hash(),t[0]=this.block,t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=this.hBytes<<3|this.bytes>>>29,t[15]=this.bytes<<3,this.hash()}},v.prototype.hash=function(){var t,i,h,r,s,e,n,a,o,f=this.h0,u=this.h1,c=this.h2,y=this.h3,p=this.h4,l=this.h5,d=this.h6,A=this.h7,w=this.blocks;for(t=16;t<64;++t)i=((s=w[t-15])>>>7|s<<25)^(s>>>18|s<<14)^s>>>3,h=((s=w[t-2])>>>17|s<<15)^(s>>>19|s<<13)^s>>>10,w[t]=w[t-16]+i+w[t-7]+h<<0;for(o=u&c,t=0;t<64;t+=4)this.first?(this.is224?(e=300032,A=(s=w[0]-1413257819)-150054599<<0,y=s+24177077<<0):(e=704751109,A=(s=w[0]-210244248)-1521486534<<0,y=s+143694565<<0),this.first=!1):(i=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),r=(e=f&u)^f&c^o,A=y+(s=A+(h=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7))+(p&l^~p&d)+b[t]+w[t])<<0,y=s+(i+r)<<0),i=(y>>>2|y<<30)^(y>>>13|y<<19)^(y>>>22|y<<10),r=(n=y&f)^y&u^e,d=c+(s=d+(h=(A>>>6|A<<26)^(A>>>11|A<<21)^(A>>>25|A<<7))+(A&p^~A&l)+b[t+1]+w[t+1])<<0,i=((c=s+(i+r)<<0)>>>2|c<<30)^(c>>>13|c<<19)^(c>>>22|c<<10),r=(a=c&y)^c&f^n,l=u+(s=l+(h=(d>>>6|d<<26)^(d>>>11|d<<21)^(d>>>25|d<<7))+(d&A^~d&p)+b[t+2]+w[t+2])<<0,i=((u=s+(i+r)<<0)>>>2|u<<30)^(u>>>13|u<<19)^(u>>>22|u<<10),r=(o=u&c)^u&y^a,p=f+(s=p+(h=(l>>>6|l<<26)^(l>>>11|l<<21)^(l>>>25|l<<7))+(l&d^~l&A)+b[t+3]+w[t+3])<<0,f=s+(i+r)<<0;this.h0=this.h0+f<<0,this.h1=this.h1+u<<0,this.h2=this.h2+c<<0,this.h3=this.h3+y<<0,this.h4=this.h4+p<<0,this.h5=this.h5+l<<0,this.h6=this.h6+d<<0,this.h7=this.h7+A<<0},v.prototype.hex=function(){this.finalize();var t=this.h0,i=this.h1,h=this.h2,r=this.h3,s=this.h4,e=this.h5,n=this.h6,a=this.h7,o=f[t>>28&15]+f[t>>24&15]+f[t>>20&15]+f[t>>16&15]+f[t>>12&15]+f[t>>8&15]+f[t>>4&15]+f[15&t]+f[i>>28&15]+f[i>>24&15]+f[i>>20&15]+f[i>>16&15]+f[i>>12&15]+f[i>>8&15]+f[i>>4&15]+f[15&i]+f[h>>28&15]+f[h>>24&15]+f[h>>20&15]+f[h>>16&15]+f[h>>12&15]+f[h>>8&15]+f[h>>4&15]+f[15&h]+f[r>>28&15]+f[r>>24&15]+f[r>>20&15]+f[r>>16&15]+f[r>>12&15]+f[r>>8&15]+f[r>>4&15]+f[15&r]+f[s>>28&15]+f[s>>24&15]+f[s>>20&15]+f[s>>16&15]+f[s>>12&15]+f[s>>8&15]+f[s>>4&15]+f[15&s]+f[e>>28&15]+f[e>>24&15]+f[e>>20&15]+f[e>>16&15]+f[e>>12&15]+f[e>>8&15]+f[e>>4&15]+f[15&e]+f[n>>28&15]+f[n>>24&15]+f[n>>20&15]+f[n>>16&15]+f[n>>12&15]+f[n>>8&15]+f[n>>4&15]+f[15&n];return this.is224||(o+=f[a>>28&15]+f[a>>24&15]+f[a>>20&15]+f[a>>16&15]+f[a>>12&15]+f[a>>8&15]+f[a>>4&15]+f[15&a]),o},v.prototype.toString=v.prototype.hex,v.prototype.digest=function(){this.finalize();var t=this.h0,i=this.h1,h=this.h2,r=this.h3,s=this.h4,e=this.h5,n=this.h6,a=this.h7,o=[t>>24&255,t>>16&255,t>>8&255,255&t,i>>24&255,i>>16&255,i>>8&255,255&i,h>>24&255,h>>16&255,h>>8&255,255&h,r>>24&255,r>>16&255,r>>8&255,255&r,s>>24&255,s>>16&255,s>>8&255,255&s,e>>24&255,e>>16&255,e>>8&255,255&e,n>>24&255,n>>16&255,n>>8&255,255&n];return this.is224||o.push(a>>24&255,a>>16&255,a>>8&255,255&a),o},v.prototype.array=v.prototype.digest,v.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(this.is224?28:32),i=new DataView(t);return i.setUint32(0,this.h0),i.setUint32(4,this.h1),i.setUint32(8,this.h2),i.setUint32(12,this.h3),i.setUint32(16,this.h4),i.setUint32(20,this.h5),i.setUint32(24,this.h6),this.is224||i.setUint32(28,this.h7),t},_.prototype=new v,_.prototype.finalize=function(){if(v.prototype.finalize.call(this),this.inner){this.inner=!1;var t=this.array();v.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(t),v.prototype.finalize.call(this)}};var B=l();B.sha256=B,B.sha224=l(!0),B.sha256.hmac=w(),B.sha224.hmac=w(!0),r?module.exports=B:(i.sha256=B.sha256,i.sha224=B.sha224,e&&define("js-sha256",function(){return B}))}();