mirror of https://github.com/emn178/js-md4.git
parent
b1f1942f17
commit
9a8df5e5e4
@ -1 +1,2 @@
|
||||
/tests/
|
||||
node_modules/
|
||||
|
@ -0,0 +1,2 @@
|
||||
covreporter
|
||||
node_modules
|
@ -1,18 +1,10 @@
|
||||
/*
|
||||
* js-md4 v0.1.1
|
||||
* js-md4 v0.2.0
|
||||
* https://github.com/emn178/js-md4
|
||||
*
|
||||
* Copyright 2015, emn178@gmail.com
|
||||
*
|
||||
* Licensed under the MIT license:
|
||||
* @license under the MIT license:
|
||||
* http://www.opensource.org/licenses/MIT
|
||||
*/
|
||||
(function(q,C){var v="undefined"!=typeof module;v&&(q=global,q.JS_MD4_TEST&&(q.navigator={userAgent:"Firefox"}));var A=(q.JS_MD4_TEST||!v)&&-1!=navigator.userAgent.indexOf("Firefox"),z=!q.JS_MD4_TEST&&"undefined"!=typeof ArrayBuffer,f="0123456789abcdef".split(""),B=[128,32768,8388608,-2147483648],w=[0,8,16,24],e=[],t;if(z){var u=new ArrayBuffer(68);t=new Uint8Array(u);e=new Uint32Array(u)}u=function(h){var l,m,n,p,b,a,d,c,k,g,q=!0,u=!1,r=0,x=0,v=0,y=h.length;e[16]=0;do{e[0]=e[16];e[16]=e[1]=e[2]=
|
||||
e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0;if(z)for(a=x;r<y&&64>a;++r)b=h.charCodeAt(r),128>b?t[a++]=b:(2048>b?t[a++]=192|b>>6:(55296>b||57344<=b?t[a++]=224|b>>12:(b=65536+((b&1023)<<10|h.charCodeAt(++r)&1023),t[a++]=240|b>>18,t[a++]=128|b>>12&63),t[a++]=128|b>>6&63),t[a++]=128|b&63);else for(a=x;r<y&&64>a;++r)b=h.charCodeAt(r),128>b?e[a>>2]|=b<<w[a++&3]:(2048>b?e[a>>2]|=(192|b>>6)<<w[a++&3]:(55296>b||57344<=b?e[a>>2]|=(224|b>>12)<<w[a++&3]:(b=65536+((b&1023)<<10|h.charCodeAt(++r)&
|
||||
1023),e[a>>2]|=(240|b>>18)<<w[a++&3],e[a>>2]|=(128|b>>12&63)<<w[a++&3]),e[a>>2]|=(128|b>>6&63)<<w[a++&3]),e[a>>2]|=(128|b&63)<<w[a++&3]);v+=a-x;x=a-64;r==y&&(e[a>>2]|=B[a&3],++r);r>y&&56>a&&(e[14]=v<<3,u=!0);q?(b=e[0]-1,b=b<<3|b>>>29,c=(b&4023233417|~b&2562383102)+e[1]+271733878,c=c<<7|c>>>25,d=(c&b|~c&4023233417)+e[2]-1732584194,d=d<<11|d>>>21,a=(d&c|~d&b)+e[3]-271733879):(b=l,a=m,d=n,c=p,b+=(a&d|~a&c)+e[0],b=b<<3|b>>>29,c+=(b&a|~b&d)+e[1],c=c<<7|c>>>25,d+=(c&b|~c&a)+e[2],d=d<<11|d>>>21,a+=(d&c|
|
||||
~d&b)+e[3]);a=a<<19|a>>>13;b+=(a&d|~a&c)+e[4];b=b<<3|b>>>29;c+=(b&a|~b&d)+e[5];c=c<<7|c>>>25;d+=(c&b|~c&a)+e[6];d=d<<11|d>>>21;a+=(d&c|~d&b)+e[7];a=a<<19|a>>>13;b+=(a&d|~a&c)+e[8];b=b<<3|b>>>29;c+=(b&a|~b&d)+e[9];c=c<<7|c>>>25;d+=(c&b|~c&a)+e[10];d=d<<11|d>>>21;a+=(d&c|~d&b)+e[11];a=a<<19|a>>>13;b+=(a&d|~a&c)+e[12];b=b<<3|b>>>29;c+=(b&a|~b&d)+e[13];c=c<<7|c>>>25;d+=(c&b|~c&a)+e[14];d=d<<11|d>>>21;a+=(d&c|~d&b)+e[15];a=a<<19|a>>>13;g=a&d;b+=(g|a&c|d&c)+e[0]+1518500249;b=b<<3|b>>>29;k=b&a;c+=(k|b&d|
|
||||
g)+e[4]+1518500249;c=c<<5|c>>>27;g=c&b;d+=(g|c&a|k)+e[8]+1518500249;d=d<<9|d>>>23;k=d&c;a+=(k|d&b|g)+e[12]+1518500249;a=a<<13|a>>>19;g=a&d;b+=(g|a&c|k)+e[1]+1518500249;b=b<<3|b>>>29;k=b&a;c+=(k|b&d|g)+e[5]+1518500249;c=c<<5|c>>>27;g=c&b;d+=(g|c&a|k)+e[9]+1518500249;d=d<<9|d>>>23;k=d&c;a+=(k|d&b|g)+e[13]+1518500249;a=a<<13|a>>>19;g=a&d;b+=(g|a&c|k)+e[2]+1518500249;b=b<<3|b>>>29;k=b&a;c+=(k|b&d|g)+e[6]+1518500249;c=c<<5|c>>>27;g=c&b;d+=(g|c&a|k)+e[10]+1518500249;d=d<<9|d>>>23;k=d&c;a+=(k|d&b|g)+e[14]+
|
||||
1518500249;a=a<<13|a>>>19;g=a&d;b+=(g|a&c|k)+e[3]+1518500249;b=b<<3|b>>>29;k=b&a;c+=(k|b&d|g)+e[7]+1518500249;c=c<<5|c>>>27;g=c&b;d+=(g|c&a|k)+e[11]+1518500249;d=d<<9|d>>>23;a+=(d&c|d&b|g)+e[15]+1518500249;a=a<<13|a>>>19;g=a^d;b+=(g^c)+e[0]+1859775393;b=b<<3|b>>>29;c+=(g^b)+e[8]+1859775393;c=c<<9|c>>>23;g=c^b;d+=(g^a)+e[4]+1859775393;d=d<<11|d>>>21;a+=(g^d)+e[12]+1859775393;a=a<<15|a>>>17;g=a^d;b+=(g^c)+e[2]+1859775393;b=b<<3|b>>>29;c+=(g^b)+e[10]+1859775393;c=c<<9|c>>>23;g=c^b;d+=(g^a)+e[6]+1859775393;
|
||||
d=d<<11|d>>>21;a+=(g^d)+e[14]+1859775393;a=a<<15|a>>>17;g=a^d;b+=(g^c)+e[1]+1859775393;b=b<<3|b>>>29;c+=(g^b)+e[9]+1859775393;c=c<<9|c>>>23;g=c^b;d+=(g^a)+e[5]+1859775393;d=d<<11|d>>>21;a+=(g^d)+e[13]+1859775393;a=a<<15|a>>>17;g=a^d;b+=(g^c)+e[3]+1859775393;b=b<<3|b>>>29;c+=(g^b)+e[11]+1859775393;c=c<<9|c>>>23;g=c^b;d+=(g^a)+e[7]+1859775393;d=d<<11|d>>>21;a+=(g^d)+e[15]+1859775393;a=a<<15|a>>>17;q?(l=b+1732584193<<0,m=a-271733879<<0,n=d-1732584194<<0,p=c+271733878<<0,q=!1):(l=l+b<<0,m=m+a<<0,n=n+
|
||||
d<<0,p=p+c<<0)}while(!u);return A?(h=f[l>>4&15]+f[l&15],h+=f[l>>12&15]+f[l>>8&15],h+=f[l>>20&15]+f[l>>16&15],h+=f[l>>28&15]+f[l>>24&15],h+=f[m>>4&15]+f[m&15],h+=f[m>>12&15]+f[m>>8&15],h+=f[m>>20&15]+f[m>>16&15],h+=f[m>>28&15]+f[m>>24&15],h+=f[n>>4&15]+f[n&15],h+=f[n>>12&15]+f[n>>8&15],h+=f[n>>20&15]+f[n>>16&15],h+=f[n>>28&15]+f[n>>24&15],h+=f[p>>4&15]+f[p&15],h+=f[p>>12&15]+f[p>>8&15],h+=f[p>>20&15]+f[p>>16&15],h+=f[p>>28&15]+f[p>>24&15]):f[l>>4&15]+f[l&15]+f[l>>12&15]+f[l>>8&15]+f[l>>20&15]+f[l>>
|
||||
16&15]+f[l>>28&15]+f[l>>24&15]+f[m>>4&15]+f[m&15]+f[m>>12&15]+f[m>>8&15]+f[m>>20&15]+f[m>>16&15]+f[m>>28&15]+f[m>>24&15]+f[n>>4&15]+f[n&15]+f[n>>12&15]+f[n>>8&15]+f[n>>20&15]+f[n>>16&15]+f[n>>28&15]+f[n>>24&15]+f[p>>4&15]+f[p&15]+f[p>>12&15]+f[p>>8&15]+f[p>>20&15]+f[p>>16&15]+f[p>>28&15]+f[p>>24&15]};!q.JS_MD4_TEST&&v?module.exports=u:q&&(q.md4=u)})(this);
|
||||
!function(e){"use strict";var r="object"==typeof process&&process.versions&&process.versions.node;r&&(e=global);var o,t=!e.JS_MD4_TEST&&"object"==typeof module&&module.exports,f="function"==typeof define&&define.amd,n=!e.JS_MD4_TEST&&"undefined"!=typeof ArrayBuffer,i="0123456789abcdef".split(""),s=[128,32768,8388608,-2147483648],a=[0,8,16,24],c=[];if(n){var d=new ArrayBuffer(68);o=new Uint8Array(d),c=new Uint32Array(d)}var u=function(e){var r="string"!=typeof e;r&&e.constructor==ArrayBuffer&&(e=new Uint8Array(e));var t,f,d,u,l,p,y,A,v,h,m,w,b,C,S=!0,T=!1,_=0,g=0,B=0,U=e.length||0;c[16]=0;do{if(c[0]=c[16],c[16]=c[1]=c[2]=c[3]=c[4]=c[5]=c[6]=c[7]=c[8]=c[9]=c[10]=c[11]=c[12]=c[13]=c[14]=c[15]=0,r)if(n)for(C=g;U>_&&64>C;++_)o[C++]=e[_];else for(C=g;U>_&&64>C;++_)c[C>>2]|=e[_]<<a[3&C++];else if(n)for(C=g;U>_&&64>C;++_)b=e.charCodeAt(_),128>b?o[C++]=b:2048>b?(o[C++]=192|b>>6,o[C++]=128|63&b):55296>b||b>=57344?(o[C++]=224|b>>12,o[C++]=128|b>>6&63,o[C++]=128|63&b):(b=65536+((1023&b)<<10|1023&e.charCodeAt(++_)),o[C++]=240|b>>18,o[C++]=128|b>>12&63,o[C++]=128|b>>6&63,o[C++]=128|63&b);else for(C=g;U>_&&64>C;++_)b=e.charCodeAt(_),128>b?c[C>>2]|=b<<a[3&C++]:2048>b?(c[C>>2]|=(192|b>>6)<<a[3&C++],c[C>>2]|=(128|63&b)<<a[3&C++]):55296>b||b>=57344?(c[C>>2]|=(224|b>>12)<<a[3&C++],c[C>>2]|=(128|b>>6&63)<<a[3&C++],c[C>>2]|=(128|63&b)<<a[3&C++]):(b=65536+((1023&b)<<10|1023&e.charCodeAt(++_)),c[C>>2]|=(240|b>>18)<<a[3&C++],c[C>>2]|=(128|b>>12&63)<<a[3&C++],c[C>>2]|=(128|b>>6&63)<<a[3&C++],c[C>>2]|=(128|63&b)<<a[3&C++]);B+=C-g,g=C-64,_==U&&(c[C>>2]|=s[3&C],++_),_>U&&56>C&&(c[14]=B<<3,T=!0),S?(l=c[0]-1,l=l<<3|l>>>29,A=(4023233417&l|2562383102&~l)+c[1]+271733878,A=A<<7|A>>>25,y=(A&l|4023233417&~A)+c[2]-1732584194,y=y<<11|y>>>21,p=(y&A|~y&l)+c[3]-271733879,p=p<<19|p>>>13):(l=t,p=f,y=d,A=u,l+=(p&y|~p&A)+c[0],l=l<<3|l>>>29,A+=(l&p|~l&y)+c[1],A=A<<7|A>>>25,y+=(A&l|~A&p)+c[2],y=y<<11|y>>>21,p+=(y&A|~y&l)+c[3],p=p<<19|p>>>13),l+=(p&y|~p&A)+c[4],l=l<<3|l>>>29,A+=(l&p|~l&y)+c[5],A=A<<7|A>>>25,y+=(A&l|~A&p)+c[6],y=y<<11|y>>>21,p+=(y&A|~y&l)+c[7],p=p<<19|p>>>13,l+=(p&y|~p&A)+c[8],l=l<<3|l>>>29,A+=(l&p|~l&y)+c[9],A=A<<7|A>>>25,y+=(A&l|~A&p)+c[10],y=y<<11|y>>>21,p+=(y&A|~y&l)+c[11],p=p<<19|p>>>13,l+=(p&y|~p&A)+c[12],l=l<<3|l>>>29,A+=(l&p|~l&y)+c[13],A=A<<7|A>>>25,y+=(A&l|~A&p)+c[14],y=y<<11|y>>>21,p+=(y&A|~y&l)+c[15],p=p<<19|p>>>13,h=p&y,l+=(h|p&A|y&A)+c[0]+1518500249,l=l<<3|l>>>29,v=l&p,A+=(v|l&y|h)+c[4]+1518500249,A=A<<5|A>>>27,w=A&l,y+=(w|A&p|v)+c[8]+1518500249,y=y<<9|y>>>23,m=y&A,p+=(m|y&l|w)+c[12]+1518500249,p=p<<13|p>>>19,h=p&y,l+=(h|p&A|m)+c[1]+1518500249,l=l<<3|l>>>29,v=l&p,A+=(v|l&y|h)+c[5]+1518500249,A=A<<5|A>>>27,w=A&l,y+=(w|A&p|v)+c[9]+1518500249,y=y<<9|y>>>23,m=y&A,p+=(m|y&l|w)+c[13]+1518500249,p=p<<13|p>>>19,h=p&y,l+=(h|p&A|m)+c[2]+1518500249,l=l<<3|l>>>29,v=l&p,A+=(v|l&y|h)+c[6]+1518500249,A=A<<5|A>>>27,w=A&l,y+=(w|A&p|v)+c[10]+1518500249,y=y<<9|y>>>23,m=y&A,p+=(m|y&l|w)+c[14]+1518500249,p=p<<13|p>>>19,h=p&y,l+=(h|p&A|m)+c[3]+1518500249,l=l<<3|l>>>29,v=l&p,A+=(v|l&y|h)+c[7]+1518500249,A=A<<5|A>>>27,w=A&l,y+=(w|A&p|v)+c[11]+1518500249,y=y<<9|y>>>23,p+=(y&A|y&l|w)+c[15]+1518500249,p=p<<13|p>>>19,h=p^y,l+=(h^A)+c[0]+1859775393,l=l<<3|l>>>29,A+=(h^l)+c[8]+1859775393,A=A<<9|A>>>23,w=A^l,y+=(w^p)+c[4]+1859775393,y=y<<11|y>>>21,p+=(w^y)+c[12]+1859775393,p=p<<15|p>>>17,h=p^y,l+=(h^A)+c[2]+1859775393,l=l<<3|l>>>29,A+=(h^l)+c[10]+1859775393,A=A<<9|A>>>23,w=A^l,y+=(w^p)+c[6]+1859775393,y=y<<11|y>>>21,p+=(w^y)+c[14]+1859775393,p=p<<15|p>>>17,h=p^y,l+=(h^A)+c[1]+1859775393,l=l<<3|l>>>29,A+=(h^l)+c[9]+1859775393,A=A<<9|A>>>23,w=A^l,y+=(w^p)+c[5]+1859775393,y=y<<11|y>>>21,p+=(w^y)+c[13]+1859775393,p=p<<15|p>>>17,h=p^y,l+=(h^A)+c[3]+1859775393,l=l<<3|l>>>29,A+=(h^l)+c[11]+1859775393,A=A<<9|A>>>23,w=A^l,y+=(w^p)+c[7]+1859775393,y=y<<11|y>>>21,p+=(w^y)+c[15]+1859775393,p=p<<15|p>>>17,S?(t=l+1732584193<<0,f=p-271733879<<0,d=y-1732584194<<0,u=A+271733878<<0,S=!1):(t=t+l<<0,f=f+p<<0,d=d+y<<0,u=u+A<<0)}while(!T);return i[t>>4&15]+i[15&t]+i[t>>12&15]+i[t>>8&15]+i[t>>20&15]+i[t>>16&15]+i[t>>28&15]+i[t>>24&15]+i[f>>4&15]+i[15&f]+i[f>>12&15]+i[f>>8&15]+i[f>>20&15]+i[f>>16&15]+i[f>>28&15]+i[f>>24&15]+i[d>>4&15]+i[15&d]+i[d>>12&15]+i[d>>8&15]+i[d>>20&15]+i[d>>16&15]+i[d>>28&15]+i[d>>24&15]+i[u>>4&15]+i[15&u]+i[u>>12&15]+i[u>>8&15]+i[u>>20&15]+i[u>>16&15]+i[u>>28&15]+i[u>>24&15]};t?module.exports=u:(e.md4=u,f&&define(function(){return u}))}(this);
|
@ -0,0 +1,24 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>MD4</title>
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mocha/2.1.0/mocha.min.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/2.1.0/mocha.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/expect.js/0.2.0/expect.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.17/require.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="mocha"></div>
|
||||
<script>
|
||||
mocha.setup('bdd');
|
||||
require(['../src/md4.js'], function(md4) {
|
||||
window.md4 = md4;
|
||||
require(['test.js'], function() {
|
||||
mocha.checkLeaks();
|
||||
mocha.run();
|
||||
})
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue