//>>built define(["dojo","dijit","dojox"],function(l,A,q){l.provide("dojox.sql._crypto");l.mixin(q.sql._crypto,{_POOL_SIZE:100,encrypt:function(a,g,h){this._initWorkerPool();a={plaintext:a,password:g};a=l.toJson(a);a="encr:"+String(a);this._assignWork(a,h)},decrypt:function(a,g,h){this._initWorkerPool();a={ciphertext:a,password:g};a=l.toJson(a);a="decr:"+String(a);this._assignWork(a,h)},_initWorkerPool:function(){if(!this._manager)try{this._manager=google.gears.factory.create("beta.workerpool","1.0");this._unemployed= [];this._employed={};this._handleMessage=[];var a=this;this._manager.onmessage=function(h,g){var k=a._employed["_"+g];a._employed["_"+g]=void 0;a._unemployed.push("_"+g);a._handleMessage.length&&(g=a._handleMessage.shift(),a._assignWork(g.msg,g.callback));k(h)};for(var g="function _workerInit(){gearsWorkerPool.onmessage \x3d "+String(this._workerHandler)+";} _workerInit();",h=0;hd;d++)e[d%4][Math.floor(d/4)]=c[d];e=r(e,m,0,4);for(d=1;dc;c++){for(var f=Array(4),a=Array(4),g=0;4>g;g++)f[g]=e[g][c],a[g]=e[g][c]&128?e[g][c]<<1^283:e[g][c]<< 1;e[0][c]=a[0]^f[1]^a[1]^f[2]^f[3];e[1][c]=f[0]^a[1]^f[2]^a[2]^f[3];e[2][c]=f[0]^f[1]^a[2]^f[3]^a[3];e[3][c]=f[0]^a[0]^f[1]^f[2]^a[3]}e=r(e,m,d,4)}e=k(e,4);e=l(e,4);e=r(e,m,b,4);m=Array(16);for(d=0;16>d;d++)m[d]=e[d%4][Math.floor(d/4)];return m}function k(c,a){for(var b=0;4>b;b++)for(var e=0;ee;e++){for(var d=0;4>d;d++)b[d]=c[e][(d+e)%a];for(d=0;4>d;d++)c[e][d]=b[d]}return c}function r(c,a,b,e){for(var d=0;4>d;d++)for(var f= 0;fc;c++)d[c]=e[f-1][c];if(0==f%a){d[4]=d[0];for(c=0;4>c;c++)d[c]=d[c+1];d=u(d);for(c=0;4>c;c++)d[c]^=x[f/a][c]}else 6c;c++)e[f][c]=e[f-a][c]^d[c]}return e}function u(c){for(var a=0;4>a;a++)c[a]=t[c[a]];return c}function q(c,a,b){if(128!=b&&192!=b&&256!=b)return""; var e=b/8,d=Array(e);for(b=0;bb;b++)a[b]=e>>>8*b&255;for(b=0;4>b;b++)a[b+4]=e/4294967296>>>8*b&255;for(var d=p(d),f=Math.ceil(c.length/16),e=Array(f),g=0;gb;b++)a[15-b]=g>>>8*b&255;for(b=0;4>b;b++)a[15-b-4]=g/4294967296>>>8*b;var m=h(a,d),l=gb;b++)c+=String.fromCharCode(a[b]);c=v(c);return c+"-"+e.join("-")}function y(a,g,b){if(128!=b&&192!=b&&256!=b)return"";var c=b/8,d=Array(c);for(b=0;bb;b++)g[b]=d.charCodeAt(b);for(var d=Array(a.length-1),f=1;fb;b++)g[15-b]=f-1>>>8*b&255;for(b=0;4>b;b++)g[15-b-4]=f/4294967296-1>>>8*b&255;var m=h(g,c);a[f]=w(a[f]);var k="";for(b=0;b