diff options
Diffstat (limited to 'js/dojo-1.6/dojox/encoding/digests')
| -rw-r--r-- | js/dojo-1.6/dojox/encoding/digests/MD5.js | 185 | ||||
| -rw-r--r-- | js/dojo-1.6/dojox/encoding/digests/MD5.xd.js | 190 | ||||
| -rw-r--r-- | js/dojo-1.6/dojox/encoding/digests/SHA1.js | 163 | ||||
| -rw-r--r-- | js/dojo-1.6/dojox/encoding/digests/SHA1.xd.js | 168 | ||||
| -rw-r--r-- | js/dojo-1.6/dojox/encoding/digests/_base.js | 88 | ||||
| -rw-r--r-- | js/dojo-1.6/dojox/encoding/digests/_base.xd.js | 92 |
6 files changed, 886 insertions, 0 deletions
diff --git a/js/dojo-1.6/dojox/encoding/digests/MD5.js b/js/dojo-1.6/dojox/encoding/digests/MD5.js new file mode 100644 index 0000000..8f122ee --- /dev/null +++ b/js/dojo-1.6/dojox/encoding/digests/MD5.js @@ -0,0 +1,185 @@ +/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.encoding.digests.MD5"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.encoding.digests.MD5"] = true;
+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<<c)|(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; i<x.length; i+=16){
+ var olda=a;
+ var oldb=b;
+ var oldc=c;
+ var oldd=d;
+
+ a=FF(a,b,c,d,x[i+ 0],7 ,-680876936);
+ d=FF(d,a,b,c,x[i+ 1],12,-389564586);
+ c=FF(c,d,a,b,x[i+ 2],17, 606105819);
+ b=FF(b,c,d,a,x[i+ 3],22,-1044525330);
+ a=FF(a,b,c,d,x[i+ 4],7 ,-176418897);
+ d=FF(d,a,b,c,x[i+ 5],12, 1200080426);
+ c=FF(c,d,a,b,x[i+ 6],17,-1473231341);
+ b=FF(b,c,d,a,x[i+ 7],22,-45705983);
+ a=FF(a,b,c,d,x[i+ 8],7 , 1770035416);
+ d=FF(d,a,b,c,x[i+ 9],12,-1958414417);
+ c=FF(c,d,a,b,x[i+10],17,-42063);
+ b=FF(b,c,d,a,x[i+11],22,-1990404162);
+ a=FF(a,b,c,d,x[i+12],7 , 1804603682);
+ d=FF(d,a,b,c,x[i+13],12,-40341101);
+ c=FF(c,d,a,b,x[i+14],17,-1502002290);
+ b=FF(b,c,d,a,x[i+15],22, 1236535329);
+
+ a=GG(a,b,c,d,x[i+ 1],5 ,-165796510);
+ d=GG(d,a,b,c,x[i+ 6],9 ,-1069501632);
+ c=GG(c,d,a,b,x[i+11],14, 643717713);
+ b=GG(b,c,d,a,x[i+ 0],20,-373897302);
+ a=GG(a,b,c,d,x[i+ 5],5 ,-701558691);
+ d=GG(d,a,b,c,x[i+10],9 , 38016083);
+ c=GG(c,d,a,b,x[i+15],14,-660478335);
+ b=GG(b,c,d,a,x[i+ 4],20,-405537848);
+ a=GG(a,b,c,d,x[i+ 9],5 , 568446438);
+ d=GG(d,a,b,c,x[i+14],9 ,-1019803690);
+ c=GG(c,d,a,b,x[i+ 3],14,-187363961);
+ b=GG(b,c,d,a,x[i+ 8],20, 1163531501);
+ a=GG(a,b,c,d,x[i+13],5 ,-1444681467);
+ d=GG(d,a,b,c,x[i+ 2],9 ,-51403784);
+ c=GG(c,d,a,b,x[i+ 7],14, 1735328473);
+ b=GG(b,c,d,a,x[i+12],20,-1926607734);
+
+ a=HH(a,b,c,d,x[i+ 5],4 ,-378558);
+ d=HH(d,a,b,c,x[i+ 8],11,-2022574463);
+ c=HH(c,d,a,b,x[i+11],16, 1839030562);
+ b=HH(b,c,d,a,x[i+14],23,-35309556);
+ a=HH(a,b,c,d,x[i+ 1],4 ,-1530992060);
+ d=HH(d,a,b,c,x[i+ 4],11, 1272893353);
+ c=HH(c,d,a,b,x[i+ 7],16,-155497632);
+ b=HH(b,c,d,a,x[i+10],23,-1094730640);
+ a=HH(a,b,c,d,x[i+13],4 , 681279174);
+ d=HH(d,a,b,c,x[i+ 0],11,-358537222);
+ c=HH(c,d,a,b,x[i+ 3],16,-722521979);
+ b=HH(b,c,d,a,x[i+ 6],23, 76029189);
+ a=HH(a,b,c,d,x[i+ 9],4 ,-640364487);
+ d=HH(d,a,b,c,x[i+12],11,-421815835);
+ c=HH(c,d,a,b,x[i+15],16, 530742520);
+ b=HH(b,c,d,a,x[i+ 2],23,-995338651);
+
+ a=II(a,b,c,d,x[i+ 0],6 ,-198630844);
+ d=II(d,a,b,c,x[i+ 7],10, 1126891415);
+ c=II(c,d,a,b,x[i+14],15,-1416354905);
+ b=II(b,c,d,a,x[i+ 5],21,-57434055);
+ a=II(a,b,c,d,x[i+12],6 , 1700485571);
+ d=II(d,a,b,c,x[i+ 3],10,-1894986606);
+ c=II(c,d,a,b,x[i+10],15,-1051523);
+ b=II(b,c,d,a,x[i+ 1],21,-2054922799);
+ a=II(a,b,c,d,x[i+ 8],6 , 1873313359);
+ d=II(d,a,b,c,x[i+15],10,-30611744);
+ c=II(c,d,a,b,x[i+ 6],15,-1560198380);
+ b=II(b,c,d,a,x[i+13],21, 1309151649);
+ a=II(a,b,c,d,x[i+ 4],6 ,-145523070);
+ d=II(d,a,b,c,x[i+11],10,-1120210379);
+ c=II(c,d,a,b,x[i+ 2],15, 718787259);
+ b=II(b,c,d,a,x[i+ 9],21,-343485551);
+
+ a=dxd.addWords(a, olda);
+ b=dxd.addWords(b, oldb);
+ c=dxd.addWords(c, oldc);
+ d=dxd.addWords(d, oldd);
+ }
+ return [a,b,c,d];
+ }
+
+ function hmac(data, key){
+ var wa=dxd.stringToWord(key);
+ if(wa.length>16){
+ 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
+ }
+ }
+ };
+})();
+
+}
diff --git a/js/dojo-1.6/dojox/encoding/digests/MD5.xd.js b/js/dojo-1.6/dojox/encoding/digests/MD5.xd.js new file mode 100644 index 0000000..425132b --- /dev/null +++ b/js/dojo-1.6/dojox/encoding/digests/MD5.xd.js @@ -0,0 +1,190 @@ +/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo._xdResourceLoaded(function(dojo, dijit, dojox){
+return {depends: [["provide", "dojox.encoding.digests.MD5"],
+["require", "dojox.encoding.digests._base"]],
+defineResource: function(dojo, dijit, dojox){if(!dojo._hasResource["dojox.encoding.digests.MD5"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.encoding.digests.MD5"] = true;
+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<<c)|(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; i<x.length; i+=16){
+ var olda=a;
+ var oldb=b;
+ var oldc=c;
+ var oldd=d;
+
+ a=FF(a,b,c,d,x[i+ 0],7 ,-680876936);
+ d=FF(d,a,b,c,x[i+ 1],12,-389564586);
+ c=FF(c,d,a,b,x[i+ 2],17, 606105819);
+ b=FF(b,c,d,a,x[i+ 3],22,-1044525330);
+ a=FF(a,b,c,d,x[i+ 4],7 ,-176418897);
+ d=FF(d,a,b,c,x[i+ 5],12, 1200080426);
+ c=FF(c,d,a,b,x[i+ 6],17,-1473231341);
+ b=FF(b,c,d,a,x[i+ 7],22,-45705983);
+ a=FF(a,b,c,d,x[i+ 8],7 , 1770035416);
+ d=FF(d,a,b,c,x[i+ 9],12,-1958414417);
+ c=FF(c,d,a,b,x[i+10],17,-42063);
+ b=FF(b,c,d,a,x[i+11],22,-1990404162);
+ a=FF(a,b,c,d,x[i+12],7 , 1804603682);
+ d=FF(d,a,b,c,x[i+13],12,-40341101);
+ c=FF(c,d,a,b,x[i+14],17,-1502002290);
+ b=FF(b,c,d,a,x[i+15],22, 1236535329);
+
+ a=GG(a,b,c,d,x[i+ 1],5 ,-165796510);
+ d=GG(d,a,b,c,x[i+ 6],9 ,-1069501632);
+ c=GG(c,d,a,b,x[i+11],14, 643717713);
+ b=GG(b,c,d,a,x[i+ 0],20,-373897302);
+ a=GG(a,b,c,d,x[i+ 5],5 ,-701558691);
+ d=GG(d,a,b,c,x[i+10],9 , 38016083);
+ c=GG(c,d,a,b,x[i+15],14,-660478335);
+ b=GG(b,c,d,a,x[i+ 4],20,-405537848);
+ a=GG(a,b,c,d,x[i+ 9],5 , 568446438);
+ d=GG(d,a,b,c,x[i+14],9 ,-1019803690);
+ c=GG(c,d,a,b,x[i+ 3],14,-187363961);
+ b=GG(b,c,d,a,x[i+ 8],20, 1163531501);
+ a=GG(a,b,c,d,x[i+13],5 ,-1444681467);
+ d=GG(d,a,b,c,x[i+ 2],9 ,-51403784);
+ c=GG(c,d,a,b,x[i+ 7],14, 1735328473);
+ b=GG(b,c,d,a,x[i+12],20,-1926607734);
+
+ a=HH(a,b,c,d,x[i+ 5],4 ,-378558);
+ d=HH(d,a,b,c,x[i+ 8],11,-2022574463);
+ c=HH(c,d,a,b,x[i+11],16, 1839030562);
+ b=HH(b,c,d,a,x[i+14],23,-35309556);
+ a=HH(a,b,c,d,x[i+ 1],4 ,-1530992060);
+ d=HH(d,a,b,c,x[i+ 4],11, 1272893353);
+ c=HH(c,d,a,b,x[i+ 7],16,-155497632);
+ b=HH(b,c,d,a,x[i+10],23,-1094730640);
+ a=HH(a,b,c,d,x[i+13],4 , 681279174);
+ d=HH(d,a,b,c,x[i+ 0],11,-358537222);
+ c=HH(c,d,a,b,x[i+ 3],16,-722521979);
+ b=HH(b,c,d,a,x[i+ 6],23, 76029189);
+ a=HH(a,b,c,d,x[i+ 9],4 ,-640364487);
+ d=HH(d,a,b,c,x[i+12],11,-421815835);
+ c=HH(c,d,a,b,x[i+15],16, 530742520);
+ b=HH(b,c,d,a,x[i+ 2],23,-995338651);
+
+ a=II(a,b,c,d,x[i+ 0],6 ,-198630844);
+ d=II(d,a,b,c,x[i+ 7],10, 1126891415);
+ c=II(c,d,a,b,x[i+14],15,-1416354905);
+ b=II(b,c,d,a,x[i+ 5],21,-57434055);
+ a=II(a,b,c,d,x[i+12],6 , 1700485571);
+ d=II(d,a,b,c,x[i+ 3],10,-1894986606);
+ c=II(c,d,a,b,x[i+10],15,-1051523);
+ b=II(b,c,d,a,x[i+ 1],21,-2054922799);
+ a=II(a,b,c,d,x[i+ 8],6 , 1873313359);
+ d=II(d,a,b,c,x[i+15],10,-30611744);
+ c=II(c,d,a,b,x[i+ 6],15,-1560198380);
+ b=II(b,c,d,a,x[i+13],21, 1309151649);
+ a=II(a,b,c,d,x[i+ 4],6 ,-145523070);
+ d=II(d,a,b,c,x[i+11],10,-1120210379);
+ c=II(c,d,a,b,x[i+ 2],15, 718787259);
+ b=II(b,c,d,a,x[i+ 9],21,-343485551);
+
+ a=dxd.addWords(a, olda);
+ b=dxd.addWords(b, oldb);
+ c=dxd.addWords(c, oldc);
+ d=dxd.addWords(d, oldd);
+ }
+ return [a,b,c,d];
+ }
+
+ function hmac(data, key){
+ var wa=dxd.stringToWord(key);
+ if(wa.length>16){
+ 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
+ }
+ }
+ };
+})();
+
+}
+
+}};});
diff --git a/js/dojo-1.6/dojox/encoding/digests/SHA1.js b/js/dojo-1.6/dojox/encoding/digests/SHA1.js new file mode 100644 index 0000000..f66ef34 --- /dev/null +++ b/js/dojo-1.6/dojox/encoding/digests/SHA1.js @@ -0,0 +1,163 @@ +/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.encoding.digests.SHA1"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.encoding.digests.SHA1"] = true;
+dojo.provide("dojox.encoding.digests.SHA1");
+dojo.require("dojox.encoding.digests._base");
+
+
+
+/*
+ * A port of Paul Johnstone's SHA1 implementation
+ *
+ * Version 2.1a Copyright Paul Johnston 2000 - 2002.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for details.
+ *
+ * Dojo port by Tom Trenka
+ */
+(function(){
+ var dxd=dojox.encoding.digests;
+ var chrsz=8, // change to 16 for unicode.
+ mask=(1<<chrsz)-1;
+
+ function R(n,c){ return (n<<c)|(n>>>(32-c)); }
+ function FT(t,b,c,d){
+ if(t<20){ return (b&c)|((~b)&d); }
+ if(t<40){ return b^c^d; }
+ if(t<60){ return (b&c)|(b&d)|(c&d); }
+ return b^c^d;
+ }
+ function KT(t){ return (t<20)?1518500249:(t<40)?1859775393:(t<60)?-1894007588:-899497514; }
+
+ function core(x,len){
+ x[len>>5]|=0x80<<(24-len%32);
+ x[((len+64>>9)<<4)+15]=len;
+
+ var w=new Array(80), a=1732584193, b=-271733879, c=-1732584194, d=271733878, e=-1009589776;
+ for(var i=0; i<x.length; i+=16){
+ var olda=a, oldb=b, oldc=c, oldd=d, olde=e;
+ for(var j=0;j<80;j++){
+ if(j<16){ w[j]=x[i+j]; }
+ else { w[j]=R(w[j-3]^w[j-8]^w[j-14]^w[j-16],1); }
+ var t = dxd.addWords(dxd.addWords(R(a,5),FT(j,b,c,d)),dxd.addWords(dxd.addWords(e,w[j]),KT(j)));
+ e=d; d=c; c=R(b,30); b=a; a=t;
+ }
+ a=dxd.addWords(a,olda);
+ b=dxd.addWords(b,oldb);
+ c=dxd.addWords(c,oldc);
+ d=dxd.addWords(d,oldd);
+ e=dxd.addWords(e,olde);
+ }
+ return [a, b, c, d, e];
+ }
+
+ function hmac(data, key){
+ var wa=toWord(key);
+ if(wa.length>16){ wa=core(wa, key.length*chrsz); }
+
+ var ipad=new Array(16), opad=new Array(16);
+ for(var i=0;i<16;i++){
+ ipad[i]=wa[i]^0x36363636;
+ opad[i]=wa[i]^0x5c5c5c5c;
+ }
+
+ var hash=core(ipad.concat(toWord(data)),512+data.length*chrsz);
+ return core(opad.concat(hash), 512+160);
+ }
+
+ function toWord(s){
+ var wa=[];
+ for(var i=0, l=s.length*chrsz; i<l; i+=chrsz){
+ wa[i>>5]|=(s.charCodeAt(i/chrsz)&mask)<<(32-chrsz-i%32);
+ }
+ return wa; // word[]
+ }
+
+ function toHex(wa){
+ // slightly different than the common one.
+ var h="0123456789abcdef", s=[];
+ for(var i=0, l=wa.length*4; i<l; i++){
+ s.push(h.charAt((wa[i>>2]>>((3-i%4)*8+4))&0xF), h.charAt((wa[i>>2]>>((3-i%4)*8))&0xF));
+ }
+ return s.join(""); // string
+ }
+
+ function _toString(wa){
+ var s=[];
+ for(var i=0, l=wa.length*32; i<l; i+=chrsz){
+ s.push(String.fromCharCode((wa[i>>5]>>>(32-chrsz-i%32))&mask));
+ }
+ return s.join(""); // string
+ }
+
+ function toBase64(/* word[] */wa){
+ // summary:
+ // convert an array of words to base64 encoding, should be more efficient
+ // than using dojox.encoding.base64
+ var p="=", tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", s=[];
+ for(var i=0, l=wa.length*4; i<l; i+=3){
+ var t=(((wa[i>>2]>>8*(3-i%4))&0xFF)<<16)|(((wa[i+1>>2]>>8*(3-(i+1)%4))&0xFF)<<8)|((wa[i+2>>2]>>8*(3-(i+2)%4))&0xFF);
+ for(var j=0; j<4; j++){
+ if(i*8+j*6>wa.length*32){
+ s.push(p);
+ } else {
+ s.push(tab.charAt((t>>6*(3-j))&0x3F));
+ }
+ }
+ }
+ return s.join(""); // string
+ };
+
+ // public function
+ dxd.SHA1=function(/* String */data, /* dojox.encoding.digests.outputTypes? */outputType){
+ // summary:
+ // Computes the SHA1 digest of the data, and returns the result according to output type.
+ var out=outputType||dxd.outputTypes.Base64;
+ var wa=core(toWord(data), data.length*chrsz);
+ switch(out){
+ case dxd.outputTypes.Raw:{
+ return wa; // word[]
+ }
+ case dxd.outputTypes.Hex:{
+ return toHex(wa); // string
+ }
+ case dxd.outputTypes.String:{
+ return _toString(wa); // string
+ }
+ default:{
+ return toBase64(wa); // string
+ }
+ }
+ }
+
+ // make this private, for later use with a generic HMAC calculator.
+ dxd.SHA1._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 toHex(wa); // string
+ }
+ case dxd.outputTypes.String:{
+ return _toString(wa); // string
+ }
+ default:{
+ return toBase64(wa); // string
+ }
+ }
+ };
+})();
+
+}
diff --git a/js/dojo-1.6/dojox/encoding/digests/SHA1.xd.js b/js/dojo-1.6/dojox/encoding/digests/SHA1.xd.js new file mode 100644 index 0000000..d3ee80c --- /dev/null +++ b/js/dojo-1.6/dojox/encoding/digests/SHA1.xd.js @@ -0,0 +1,168 @@ +/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo._xdResourceLoaded(function(dojo, dijit, dojox){
+return {depends: [["provide", "dojox.encoding.digests.SHA1"],
+["require", "dojox.encoding.digests._base"]],
+defineResource: function(dojo, dijit, dojox){if(!dojo._hasResource["dojox.encoding.digests.SHA1"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.encoding.digests.SHA1"] = true;
+dojo.provide("dojox.encoding.digests.SHA1");
+dojo.require("dojox.encoding.digests._base");
+
+
+
+/*
+ * A port of Paul Johnstone's SHA1 implementation
+ *
+ * Version 2.1a Copyright Paul Johnston 2000 - 2002.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for details.
+ *
+ * Dojo port by Tom Trenka
+ */
+(function(){
+ var dxd=dojox.encoding.digests;
+ var chrsz=8, // change to 16 for unicode.
+ mask=(1<<chrsz)-1;
+
+ function R(n,c){ return (n<<c)|(n>>>(32-c)); }
+ function FT(t,b,c,d){
+ if(t<20){ return (b&c)|((~b)&d); }
+ if(t<40){ return b^c^d; }
+ if(t<60){ return (b&c)|(b&d)|(c&d); }
+ return b^c^d;
+ }
+ function KT(t){ return (t<20)?1518500249:(t<40)?1859775393:(t<60)?-1894007588:-899497514; }
+
+ function core(x,len){
+ x[len>>5]|=0x80<<(24-len%32);
+ x[((len+64>>9)<<4)+15]=len;
+
+ var w=new Array(80), a=1732584193, b=-271733879, c=-1732584194, d=271733878, e=-1009589776;
+ for(var i=0; i<x.length; i+=16){
+ var olda=a, oldb=b, oldc=c, oldd=d, olde=e;
+ for(var j=0;j<80;j++){
+ if(j<16){ w[j]=x[i+j]; }
+ else { w[j]=R(w[j-3]^w[j-8]^w[j-14]^w[j-16],1); }
+ var t = dxd.addWords(dxd.addWords(R(a,5),FT(j,b,c,d)),dxd.addWords(dxd.addWords(e,w[j]),KT(j)));
+ e=d; d=c; c=R(b,30); b=a; a=t;
+ }
+ a=dxd.addWords(a,olda);
+ b=dxd.addWords(b,oldb);
+ c=dxd.addWords(c,oldc);
+ d=dxd.addWords(d,oldd);
+ e=dxd.addWords(e,olde);
+ }
+ return [a, b, c, d, e];
+ }
+
+ function hmac(data, key){
+ var wa=toWord(key);
+ if(wa.length>16){ wa=core(wa, key.length*chrsz); }
+
+ var ipad=new Array(16), opad=new Array(16);
+ for(var i=0;i<16;i++){
+ ipad[i]=wa[i]^0x36363636;
+ opad[i]=wa[i]^0x5c5c5c5c;
+ }
+
+ var hash=core(ipad.concat(toWord(data)),512+data.length*chrsz);
+ return core(opad.concat(hash), 512+160);
+ }
+
+ function toWord(s){
+ var wa=[];
+ for(var i=0, l=s.length*chrsz; i<l; i+=chrsz){
+ wa[i>>5]|=(s.charCodeAt(i/chrsz)&mask)<<(32-chrsz-i%32);
+ }
+ return wa; // word[]
+ }
+
+ function toHex(wa){
+ // slightly different than the common one.
+ var h="0123456789abcdef", s=[];
+ for(var i=0, l=wa.length*4; i<l; i++){
+ s.push(h.charAt((wa[i>>2]>>((3-i%4)*8+4))&0xF), h.charAt((wa[i>>2]>>((3-i%4)*8))&0xF));
+ }
+ return s.join(""); // string
+ }
+
+ function _toString(wa){
+ var s=[];
+ for(var i=0, l=wa.length*32; i<l; i+=chrsz){
+ s.push(String.fromCharCode((wa[i>>5]>>>(32-chrsz-i%32))&mask));
+ }
+ return s.join(""); // string
+ }
+
+ function toBase64(/* word[] */wa){
+ // summary:
+ // convert an array of words to base64 encoding, should be more efficient
+ // than using dojox.encoding.base64
+ var p="=", tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", s=[];
+ for(var i=0, l=wa.length*4; i<l; i+=3){
+ var t=(((wa[i>>2]>>8*(3-i%4))&0xFF)<<16)|(((wa[i+1>>2]>>8*(3-(i+1)%4))&0xFF)<<8)|((wa[i+2>>2]>>8*(3-(i+2)%4))&0xFF);
+ for(var j=0; j<4; j++){
+ if(i*8+j*6>wa.length*32){
+ s.push(p);
+ } else {
+ s.push(tab.charAt((t>>6*(3-j))&0x3F));
+ }
+ }
+ }
+ return s.join(""); // string
+ };
+
+ // public function
+ dxd.SHA1=function(/* String */data, /* dojox.encoding.digests.outputTypes? */outputType){
+ // summary:
+ // Computes the SHA1 digest of the data, and returns the result according to output type.
+ var out=outputType||dxd.outputTypes.Base64;
+ var wa=core(toWord(data), data.length*chrsz);
+ switch(out){
+ case dxd.outputTypes.Raw:{
+ return wa; // word[]
+ }
+ case dxd.outputTypes.Hex:{
+ return toHex(wa); // string
+ }
+ case dxd.outputTypes.String:{
+ return _toString(wa); // string
+ }
+ default:{
+ return toBase64(wa); // string
+ }
+ }
+ }
+
+ // make this private, for later use with a generic HMAC calculator.
+ dxd.SHA1._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 toHex(wa); // string
+ }
+ case dxd.outputTypes.String:{
+ return _toString(wa); // string
+ }
+ default:{
+ return toBase64(wa); // string
+ }
+ }
+ };
+})();
+
+}
+
+}};});
diff --git a/js/dojo-1.6/dojox/encoding/digests/_base.js b/js/dojo-1.6/dojox/encoding/digests/_base.js new file mode 100644 index 0000000..47ccfb0 --- /dev/null +++ b/js/dojo-1.6/dojox/encoding/digests/_base.js @@ -0,0 +1,88 @@ +/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.encoding.digests._base"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.encoding.digests._base"] = true;
+dojo.provide("dojox.encoding.digests._base");
+
+
+dojo.getObject("encodoing.digests", true, dojox);
+
+(function(){
+ //TODO: see if it makes sense to meld this into one with the
+ // crypto base enums
+ var d=dojox.encoding.digests;
+ d.outputTypes={
+ // summary:
+ // Enumeration for input and output encodings.
+ Base64:0, Hex:1, String:2, Raw:3
+ };
+
+ // word-based addition
+ d.addWords=function(/* word */a, /* word */b){
+ // summary:
+ // add a pair of words together with rollover
+ var l=(a&0xFFFF)+(b&0xFFFF);
+ var m=(a>>16)+(b>>16)+(l>>16);
+ return (m<<16)|(l&0xFFFF); // word
+ };
+
+ // word-based conversion method, for efficiency sake;
+ // most digests operate on words, and this should be faster
+ // than the encoding version (which works on bytes).
+ var chrsz=8; // 16 for Unicode
+ var mask=(1<<chrsz)-1;
+
+ d.stringToWord=function(/* string */s){
+ // summary:
+ // convert a string to a word array
+ var wa=[];
+ for(var i=0, l=s.length*chrsz; i<l; i+=chrsz){
+ wa[i>>5]|=(s.charCodeAt(i/chrsz)&mask)<<(i%32);
+ }
+ return wa; // word[]
+ };
+
+ d.wordToString=function(/* word[] */wa){
+ // summary:
+ // convert an array of words to a string
+ var s=[];
+ for(var i=0, l=wa.length*32; i<l; i+=chrsz){
+ s.push(String.fromCharCode((wa[i>>5]>>>(i%32))&mask));
+ }
+ return s.join(""); // string
+ }
+
+ d.wordToHex=function(/* word[] */wa){
+ // summary:
+ // convert an array of words to a hex tab
+ var h="0123456789abcdef", s=[];
+ for(var i=0, l=wa.length*4; i<l; i++){
+ s.push(h.charAt((wa[i>>2]>>((i%4)*8+4))&0xF)+h.charAt((wa[i>>2]>>((i%4)*8))&0xF));
+ }
+ return s.join(""); // string
+ }
+ d.wordToBase64=function(/* word[] */wa){
+ // summary:
+ // convert an array of words to base64 encoding, should be more efficient
+ // than using dojox.encoding.base64
+ var p="=", tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", s=[];
+ for(var i=0, l=wa.length*4; i<l; i+=3){
+ var t=(((wa[i>>2]>>8*(i%4))&0xFF)<<16)|(((wa[i+1>>2]>>8*((i+1)%4))&0xFF)<<8)|((wa[i+2>>2]>>8*((i+2)%4))&0xFF);
+ for(var j=0; j<4; j++){
+ if(i*8+j*6>wa.length*32){
+ s.push(p);
+ } else {
+ s.push(tab.charAt((t>>6*(3-j))&0x3F));
+ }
+ }
+ }
+ return s.join(""); // string
+ };
+})();
+
+}
diff --git a/js/dojo-1.6/dojox/encoding/digests/_base.xd.js b/js/dojo-1.6/dojox/encoding/digests/_base.xd.js new file mode 100644 index 0000000..77fb12f --- /dev/null +++ b/js/dojo-1.6/dojox/encoding/digests/_base.xd.js @@ -0,0 +1,92 @@ +/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo._xdResourceLoaded(function(dojo, dijit, dojox){
+return {depends: [["provide", "dojox.encoding.digests._base"]],
+defineResource: function(dojo, dijit, dojox){if(!dojo._hasResource["dojox.encoding.digests._base"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.encoding.digests._base"] = true;
+dojo.provide("dojox.encoding.digests._base");
+
+
+dojo.getObject("encodoing.digests", true, dojox);
+
+(function(){
+ //TODO: see if it makes sense to meld this into one with the
+ // crypto base enums
+ var d=dojox.encoding.digests;
+ d.outputTypes={
+ // summary:
+ // Enumeration for input and output encodings.
+ Base64:0, Hex:1, String:2, Raw:3
+ };
+
+ // word-based addition
+ d.addWords=function(/* word */a, /* word */b){
+ // summary:
+ // add a pair of words together with rollover
+ var l=(a&0xFFFF)+(b&0xFFFF);
+ var m=(a>>16)+(b>>16)+(l>>16);
+ return (m<<16)|(l&0xFFFF); // word
+ };
+
+ // word-based conversion method, for efficiency sake;
+ // most digests operate on words, and this should be faster
+ // than the encoding version (which works on bytes).
+ var chrsz=8; // 16 for Unicode
+ var mask=(1<<chrsz)-1;
+
+ d.stringToWord=function(/* string */s){
+ // summary:
+ // convert a string to a word array
+ var wa=[];
+ for(var i=0, l=s.length*chrsz; i<l; i+=chrsz){
+ wa[i>>5]|=(s.charCodeAt(i/chrsz)&mask)<<(i%32);
+ }
+ return wa; // word[]
+ };
+
+ d.wordToString=function(/* word[] */wa){
+ // summary:
+ // convert an array of words to a string
+ var s=[];
+ for(var i=0, l=wa.length*32; i<l; i+=chrsz){
+ s.push(String.fromCharCode((wa[i>>5]>>>(i%32))&mask));
+ }
+ return s.join(""); // string
+ }
+
+ d.wordToHex=function(/* word[] */wa){
+ // summary:
+ // convert an array of words to a hex tab
+ var h="0123456789abcdef", s=[];
+ for(var i=0, l=wa.length*4; i<l; i++){
+ s.push(h.charAt((wa[i>>2]>>((i%4)*8+4))&0xF)+h.charAt((wa[i>>2]>>((i%4)*8))&0xF));
+ }
+ return s.join(""); // string
+ }
+ d.wordToBase64=function(/* word[] */wa){
+ // summary:
+ // convert an array of words to base64 encoding, should be more efficient
+ // than using dojox.encoding.base64
+ var p="=", tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", s=[];
+ for(var i=0, l=wa.length*4; i<l; i+=3){
+ var t=(((wa[i>>2]>>8*(i%4))&0xFF)<<16)|(((wa[i+1>>2]>>8*((i+1)%4))&0xFF)<<8)|((wa[i+2>>2]>>8*((i+2)%4))&0xFF);
+ for(var j=0; j<4; j++){
+ if(i*8+j*6>wa.length*32){
+ s.push(p);
+ } else {
+ s.push(tab.charAt((t>>6*(3-j))&0x3F));
+ }
+ }
+ }
+ return s.join(""); // string
+ };
+})();
+
+}
+
+}};});
|
