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-md4/build/md4.min.js

10 lines
6.4 KiB
JavaScript

/**
* [js-md4]{@link https://github.com/emn178/js-md4}
*
* @namespace md4
* @version 0.3.1
* @author Yi-Cyuan Chen [emn178@gmail.com]
* @copyright Yi-Cyuan Chen 2015-2027
* @license MIT
*/
!function(){"use strict";function t(t){if(t)p[0]=p[16]=p[1]=p[2]=p[3]=p[4]=p[5]=p[6]=p[7]=p[8]=p[9]=p[10]=p[11]=p[12]=p[13]=p[14]=p[15]=0,this.blocks=p,this.buffer8=s;else if(n){var i=new ArrayBuffer(68);this.buffer8=new Uint8Array(i),this.blocks=new Uint32Array(i)}else this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h0=this.h1=this.h2=this.h3=this.start=this.bytes=0,this.finalized=this.hashed=!1,this.first=!0}var i="object"==typeof window?window:{},h=!i.JS_MD4_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;h&&(i=global);var s,e=!i.JS_MD4_NO_COMMON_JS&&"object"==typeof module&&module.exports,r="function"==typeof define&&define.amd,n=!i.JS_MD4_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,o="0123456789abcdef".split(""),f=[128,32768,8388608,-2147483648],a=[0,8,16,24],u=["hex","array","digest","buffer"],p=[];if(n){var y=new ArrayBuffer(68);s=new Uint8Array(y),p=new Uint32Array(y)}var c=function(i){return function(h){return new t(!0).update(h)[i]()}},d=function(){var i=c("hex");i.create=function(){return new t},i.update=function(t){return i.create().update(t)};for(var h=0;h<u.length;++h){var s=u[h];i[s]=c(s)}return i};t.prototype.update=function(t){if(!this.finalized){var i="string"!=typeof t;i&&n&&t instanceof ArrayBuffer&&(t=new Uint8Array(t));for(var h,s,e=0,r=t.length||0,o=this.blocks,f=this.buffer8;r>e;){if(this.hashed&&(this.hashed=!1,o[0]=o[16],o[16]=o[1]=o[2]=o[3]=o[4]=o[5]=o[6]=o[7]=o[8]=o[9]=o[10]=o[11]=o[12]=o[13]=o[14]=o[15]=0),i)if(n)for(s=this.start;r>e&&64>s;++e)f[s++]=t[e];else for(s=this.start;r>e&&64>s;++e)o[s>>2]|=t[e]<<a[3&s++];else if(n)for(s=this.start;r>e&&64>s;++e)h=t.charCodeAt(e),128>h?f[s++]=h:2048>h?(f[s++]=192|h>>6,f[s++]=128|63&h):55296>h||h>=57344?(f[s++]=224|h>>12,f[s++]=128|h>>6&63,f[s++]=128|63&h):(h=65536+((1023&h)<<10|1023&t.charCodeAt(++e)),f[s++]=240|h>>18,f[s++]=128|h>>12&63,f[s++]=128|h>>6&63,f[s++]=128|63&h);else for(s=this.start;r>e&&64>s;++e)h=t.charCodeAt(e),128>h?o[s>>2]|=h<<a[3&s++]:2048>h?(o[s>>2]|=(192|h>>6)<<a[3&s++],o[s>>2]|=(128|63&h)<<a[3&s++]):55296>h||h>=57344?(o[s>>2]|=(224|h>>12)<<a[3&s++],o[s>>2]|=(128|h>>6&63)<<a[3&s++],o[s>>2]|=(128|63&h)<<a[3&s++]):(h=65536+((1023&h)<<10|1023&t.charCodeAt(++e)),o[s>>2]|=(240|h>>18)<<a[3&s++],o[s>>2]|=(128|h>>12&63)<<a[3&s++],o[s>>2]|=(128|h>>6&63)<<a[3&s++],o[s>>2]|=(128|63&h)<<a[3&s++]);this.lastByteIndex=s,this.bytes+=s-this.start,s>=64?(this.start=s-64,this.hash(),this.hashed=!0):this.start=s}return this}},t.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,i=this.lastByteIndex;t[i>>2]|=f[3&i],i>=56&&(this.hashed||this.hash(),t[0]=t[16],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.bytes<<3,this.hash()}},t.prototype.hash=function(){var t,i,h,s,e,r,n,o,f=this.blocks;this.first?(t=f[0]-1,t=t<<3|t>>>29,s=(4023233417&t|2562383102&~t)+f[1]+271733878,s=s<<7|s>>>25,h=(s&t|4023233417&~s)+f[2]-1732584194,h=h<<11|h>>>21,i=(h&s|~h&t)+f[3]-271733879,i=i<<19|i>>>13):(t=this.h0,i=this.h1,h=this.h2,s=this.h3,t+=(i&h|~i&s)+f[0],t=t<<3|t>>>29,s+=(t&i|~t&h)+f[1],s=s<<7|s>>>25,h+=(s&t|~s&i)+f[2],h=h<<11|h>>>21,i+=(h&s|~h&t)+f[3],i=i<<19|i>>>13),t+=(i&h|~i&s)+f[4],t=t<<3|t>>>29,s+=(t&i|~t&h)+f[5],s=s<<7|s>>>25,h+=(s&t|~s&i)+f[6],h=h<<11|h>>>21,i+=(h&s|~h&t)+f[7],i=i<<19|i>>>13,t+=(i&h|~i&s)+f[8],t=t<<3|t>>>29,s+=(t&i|~t&h)+f[9],s=s<<7|s>>>25,h+=(s&t|~s&i)+f[10],h=h<<11|h>>>21,i+=(h&s|~h&t)+f[11],i=i<<19|i>>>13,t+=(i&h|~i&s)+f[12],t=t<<3|t>>>29,s+=(t&i|~t&h)+f[13],s=s<<7|s>>>25,h+=(s&t|~s&i)+f[14],h=h<<11|h>>>21,i+=(h&s|~h&t)+f[15],i=i<<19|i>>>13,r=i&h,t+=(r|i&s|h&s)+f[0]+1518500249,t=t<<3|t>>>29,e=t&i,s+=(e|t&h|r)+f[4]+1518500249,s=s<<5|s>>>27,o=s&t,h+=(o|s&i|e)+f[8]+1518500249,h=h<<9|h>>>23,n=h&s,i+=(n|h&t|o)+f[12]+1518500249,i=i<<13|i>>>19,r=i&h,t+=(r|i&s|n)+f[1]+1518500249,t=t<<3|t>>>29,e=t&i,s+=(e|t&h|r)+f[5]+1518500249,s=s<<5|s>>>27,o=s&t,h+=(o|s&i|e)+f[9]+1518500249,h=h<<9|h>>>23,n=h&s,i+=(n|h&t|o)+f[13]+1518500249,i=i<<13|i>>>19,r=i&h,t+=(r|i&s|n)+f[2]+1518500249,t=t<<3|t>>>29,e=t&i,s+=(e|t&h|r)+f[6]+1518500249,s=s<<5|s>>>27,o=s&t,h+=(o|s&i|e)+f[10]+1518500249,h=h<<9|h>>>23,n=h&s,i+=(n|h&t|o)+f[14]+1518500249,i=i<<13|i>>>19,r=i&h,t+=(r|i&s|n)+f[3]+1518500249,t=t<<3|t>>>29,e=t&i,s+=(e|t&h|r)+f[7]+1518500249,s=s<<5|s>>>27,o=s&t,h+=(o|s&i|e)+f[11]+1518500249,h=h<<9|h>>>23,i+=(h&s|h&t|o)+f[15]+1518500249,i=i<<13|i>>>19,r=i^h,t+=(r^s)+f[0]+1859775393,t=t<<3|t>>>29,s+=(r^t)+f[8]+1859775393,s=s<<9|s>>>23,o=s^t,h+=(o^i)+f[4]+1859775393,h=h<<11|h>>>21,i+=(o^h)+f[12]+1859775393,i=i<<15|i>>>17,r=i^h,t+=(r^s)+f[2]+1859775393,t=t<<3|t>>>29,s+=(r^t)+f[10]+1859775393,s=s<<9|s>>>23,o=s^t,h+=(o^i)+f[6]+1859775393,h=h<<11|h>>>21,i+=(o^h)+f[14]+1859775393,i=i<<15|i>>>17,r=i^h,t+=(r^s)+f[1]+1859775393,t=t<<3|t>>>29,s+=(r^t)+f[9]+1859775393,s=s<<9|s>>>23,o=s^t,h+=(o^i)+f[5]+1859775393,h=h<<11|h>>>21,i+=(o^h)+f[13]+1859775393,i=i<<15|i>>>17,r=i^h,t+=(r^s)+f[3]+1859775393,t=t<<3|t>>>29,s+=(r^t)+f[11]+1859775393,s=s<<9|s>>>23,o=s^t,h+=(o^i)+f[7]+1859775393,h=h<<11|h>>>21,i+=(o^h)+f[15]+1859775393,i=i<<15|i>>>17,this.first?(this.h0=t+1732584193<<0,this.h1=i-271733879<<0,this.h2=h-1732584194<<0,this.h3=s+271733878<<0,this.first=!1):(this.h0=this.h0+t<<0,this.h1=this.h1+i<<0,this.h2=this.h2+h<<0,this.h3=this.h3+s<<0)},t.prototype.hex=function(){this.finalize();var t=this.h0,i=this.h1,h=this.h2,s=this.h3;return o[t>>4&15]+o[15&t]+o[t>>12&15]+o[t>>8&15]+o[t>>20&15]+o[t>>16&15]+o[t>>28&15]+o[t>>24&15]+o[i>>4&15]+o[15&i]+o[i>>12&15]+o[i>>8&15]+o[i>>20&15]+o[i>>16&15]+o[i>>28&15]+o[i>>24&15]+o[h>>4&15]+o[15&h]+o[h>>12&15]+o[h>>8&15]+o[h>>20&15]+o[h>>16&15]+o[h>>28&15]+o[h>>24&15]+o[s>>4&15]+o[15&s]+o[s>>12&15]+o[s>>8&15]+o[s>>20&15]+o[s>>16&15]+o[s>>28&15]+o[s>>24&15]},t.prototype.toString=t.prototype.hex,t.prototype.digest=function(){this.finalize();var t=this.h0,i=this.h1,h=this.h2,s=this.h3;return[255&t,t>>8&255,t>>16&255,t>>24&255,255&i,i>>8&255,i>>16&255,i>>24&255,255&h,h>>8&255,h>>16&255,h>>24&255,255&s,s>>8&255,s>>16&255,s>>24&255]},t.prototype.array=t.prototype.digest,t.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(16),i=new Uint32Array(t);return i[0]=this.h0,i[1]=this.h1,i[2]=this.h2,i[3]=this.h3,t},t.prototype.buffer=t.prototype.arrayBuffer;var l=d();e?module.exports=l:(i.md4=l,r&&define(function(){return l}))}();