a:8:{s:9:"#provides";s:26:"dojox.encoding.digests.MD5";s:9:"#resource";s:23:"encoding/digests/MD5.js";s:9:"#requires";a:1:{i:0;a:2:{i:0;s:6:"common";i:1;s:28:"dojox.encoding.digests._base";}}s:26:"dojox.encoding.digests.MD5";a:6:{s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:4:"data";a:1:{s:4:"type";s:6:"string";}s:10:"outputType";a:2:{s:8:"optional";b:1;s:4:"type";s:34:"dojox.encoding.digests.outputTypes";}}s:6:"source";s:4833:"dojo.provide("dojox.encoding.digests.MD5"); dojo.require("dojox.encoding.digests._base"); /* A port of Paul Johnstone's MD5 implementation * http://pajhome.org.uk/crypt/md5/index.html * * Copyright (C) Paul Johnston 1999 - 2002. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * Distributed under the BSD License * * Dojo port by Tom Trenka */ (function(){ var dxd=dojox.encoding.digests; var chrsz=8; // MD5 rounds functions function R(n,c){ return (n<>>(32-c)); } function C(q,a,b,x,s,t){ return dxd.addWords(R(dxd.addWords(dxd.addWords(a, q), dxd.addWords(x, t)), s), b); } function FF(a,b,c,d,x,s,t){ return C((b&c)|((~b)&d),a,b,x,s,t); } function GG(a,b,c,d,x,s,t){ return C((b&d)|(c&(~d)),a,b,x,s,t); } function HH(a,b,c,d,x,s,t){ return C(b^c^d,a,b,x,s,t); } function II(a,b,c,d,x,s,t){ return C(c^(b|(~d)),a,b,x,s,t); } // the core MD5 rounds method function core(x,len){ x[len>>5]|=0x80<<((len)%32); x[(((len+64)>>>9)<<4)+14]=len; var a= 1732584193; var b=-271733879; var c=-1732584194; var d= 271733878; for(var i=0; i16){ wa=core(wa, key.length*chrsz); } var l=[], r=[]; for(var i=0; i<16; i++){ l[i]=wa[i]^0x36363636; r[i]=wa[i]^0x5c5c5c5c; } var h=core(l.concat(dxd.stringToWord(data)), 512+data.length*chrsz); return core(r.concat(h), 640); } // public function dxd.MD5=function(/* string */data, /* dojox.encoding.digests.outputTypes? */outputType){ // summary // computes the digest of data, and returns the result according to type outputType var out=outputType || dxd.outputTypes.Base64; var wa=core(dxd.stringToWord(data), data.length*chrsz); switch(out){ case dxd.outputTypes.Raw:{ return wa; // word[] } case dxd.outputTypes.Hex:{ return dxd.wordToHex(wa); // string } case dxd.outputTypes.String:{ return dxd.wordToString(wa); // string } default:{ return dxd.wordToBase64(wa); // string } }";s:7:"returns";s:13:"word[]|string";s:9:"classlike";b:1;s:7:"summary";s:0:"";}s:32:"dojox.encoding.digests.MD5._hmac";a:6:{s:4:"type";s:8:"Function";s:10:"parameters";a:3:{s:4:"data";a:1:{s:4:"type";s:6:"string";}s:3:"key";a:1:{s:4:"type";s:6:"string";}s:10:"outputType";a:2:{s:8:"optional";b:1;s:4:"type";s:34:"dojox.encoding.digests.outputTypes";}}s:6:"source";s:5490:"dojo.provide("dojox.encoding.digests.MD5"); dojo.require("dojox.encoding.digests._base"); /* A port of Paul Johnstone's MD5 implementation * http://pajhome.org.uk/crypt/md5/index.html * * Copyright (C) Paul Johnston 1999 - 2002. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * Distributed under the BSD License * * Dojo port by Tom Trenka */ (function(){ var dxd=dojox.encoding.digests; var chrsz=8; // MD5 rounds functions function R(n,c){ return (n<>>(32-c)); } function C(q,a,b,x,s,t){ return dxd.addWords(R(dxd.addWords(dxd.addWords(a, q), dxd.addWords(x, t)), s), b); } function FF(a,b,c,d,x,s,t){ return C((b&c)|((~b)&d),a,b,x,s,t); } function GG(a,b,c,d,x,s,t){ return C((b&d)|(c&(~d)),a,b,x,s,t); } function HH(a,b,c,d,x,s,t){ return C(b^c^d,a,b,x,s,t); } function II(a,b,c,d,x,s,t){ return C(c^(b|(~d)),a,b,x,s,t); } // the core MD5 rounds method function core(x,len){ x[len>>5]|=0x80<<((len)%32); x[(((len+64)>>>9)<<4)+14]=len; var a= 1732584193; var b=-271733879; var c=-1732584194; var d= 271733878; for(var i=0; i16){ wa=core(wa, key.length*chrsz); } var l=[], r=[]; for(var i=0; i<16; i++){ l[i]=wa[i]^0x36363636; r[i]=wa[i]^0x5c5c5c5c; } var h=core(l.concat(dxd.stringToWord(data)), 512+data.length*chrsz); return core(r.concat(h), 640); } // public function dxd.MD5=function(/* string */data, /* dojox.encoding.digests.outputTypes? */outputType){ // summary // computes the digest of data, and returns the result according to type outputType var out=outputType || dxd.outputTypes.Base64; var wa=core(dxd.stringToWord(data), data.length*chrsz); switch(out){ case dxd.outputTypes.Raw:{ return wa; // word[] } case dxd.outputTypes.Hex:{ return dxd.wordToHex(wa); // string } case dxd.outputTypes.String:{ return dxd.wordToString(wa); // string } default:{ return dxd.wordToBase64(wa); // string } } }; // make this private, for later use with a generic HMAC calculator. dxd.MD5._hmac=function(/* string */data, /* string */key, /* dojox.encoding.digests.outputTypes? */outputType){ // summary // computes the digest of data, and returns the result according to type outputType var out=outputType || dxd.outputTypes.Base64; var wa=hmac(data, key); switch(out){ case dxd.outputTypes.Raw:{ return wa; // word[] } case dxd.outputTypes.Hex:{ return dxd.wordToHex(wa); // string } case dxd.outputTypes.String:{ return dxd.wordToString(wa); // string } default:{ return dxd.wordToBase64(wa); // string } }";s:7:"returns";s:13:"word[]|string";s:7:"private";b:1;s:7:"summary";s:0:"";}s:22:"dojox.encoding.digests";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:14:"dojox.encoding";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:5:"dojox";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}}