summaryrefslogtreecommitdiff
path: root/frontend/beta/js/Clipperz/PM/Proxy/Proxy.PHP.js
Side-by-side diff
Diffstat (limited to 'frontend/beta/js/Clipperz/PM/Proxy/Proxy.PHP.js') (more/less context) (ignore whitespace changes)
-rwxr-xr-xfrontend/beta/js/Clipperz/PM/Proxy/Proxy.PHP.js259
1 files changed, 259 insertions, 0 deletions
diff --git a/frontend/beta/js/Clipperz/PM/Proxy/Proxy.PHP.js b/frontend/beta/js/Clipperz/PM/Proxy/Proxy.PHP.js
new file mode 100755
index 0000000..e7c2bc1
--- a/dev/null
+++ b/frontend/beta/js/Clipperz/PM/Proxy/Proxy.PHP.js
@@ -0,0 +1,259 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
+if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
+
+//=============================================================================
+
+Clipperz.PM.Proxy.PHP = function(args) {
+ Clipperz.PM.Proxy.PHP.superclass.constructor.call(this, args);
+/*
+ this._tolls = {
+ 'CONNECT': [],
+ 'REGISTER': [],
+ 'MESSAGE': []
+ };
+*/
+ return this;
+}
+
+YAHOO.extendX(Clipperz.PM.Proxy.PHP, Clipperz.PM.Proxy, {
+
+ 'toString': function() {
+ return "Clipperz.PM.Proxy.PHP - " + this.args();
+ },
+
+ //=========================================================================
+/*
+ 'tolls': function() {
+ return this._tolls;
+ },
+*/
+ //-------------------------------------------------------------------------
+/*
+ 'payToll': function(aRequestType, someParameters) {
+ var deferredResult;
+
+//MochiKit.Logging.logDebug(">>> Proxy.DWR.payToll: " + aRequestType);
+ if (this.tolls()[aRequestType].length > 0) {
+ deferredResult = MochiKit.Async.succeed(this.tolls()[aRequestType].pop());
+ } else {
+//MochiKit.Logging.logDebug("### " + aRequestType + " toll NOT immediately available; request queued.");
+ deferredResult = new MochiKit.Async.Deferred();
+ deferredResult.addCallback(function(someParameters) {
+ return new Clipperz.PM.Toll(someParameters['toll']);
+ })
+ com_clipperz_pm_Proxy.knock(Clipperz.Base.serializeJSON({requestType:aRequestType}), {
+ callback:MochiKit.Base.method(deferredResult, 'callback'),
+ errorHandler:MochiKit.Base.method(deferredResult, 'errback')
+ });
+ }
+
+ deferredResult.addCallback(function(aToll) {
+ return aToll.deferredPay();
+ });
+ deferredResult.addCallback(function(someParameters, aToll) {
+ var result;
+
+ result = {
+ parameters: someParameters,
+ toll: aToll
+ }
+
+ return result;
+ }, someParameters);
+
+ return deferredResult;
+ },
+*/
+ //-------------------------------------------------------------------------
+/*
+ 'addToll': function(aToll) {
+ this.tolls()[aToll.requestType()].push(aToll);
+ },
+*/
+ //=========================================================================
+/*
+ 'setTollCallback': function(someParameters) {
+//MochiKit.Logging.logDebug(">>> Proxy.DWR.setTollCallback");
+//MochiKit.Logging.logDebug("--- Proxy.DWR.setTollCallback - " + Clipperz.Base.serializeJSON(someParameters));
+ if (typeof(someParameters['toll']) != 'undefined') {
+ this.addToll(new Clipperz.PM.Toll(someParameters['toll']));
+ }
+ return someParameters['result'];
+ },
+*/
+ //=========================================================================
+
+ 'registration': function(someParameters) {
+ return this.sendMessage('registration', someParameters, 'REGISTER');
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'handshake': function(someParameters) {
+/*
+ _s = "e8a2162f29aeaabb729f5625e9740edbf0cd80ac77c6b19ab951ed6c88443b8c";
+ _v = new Clipperz.Crypto.BigInt("955e2db0f7844aca372f5799e5f7e51b5866718493096908bd66abcf1d068108", 16);
+ _b = new Clipperz.Crypto.BigInt("5761e6c84d22ea3c5649de01702d60f674ccfe79238540eb34c61cd020230c53", 16);
+
+ _B = _v.add(Clipperz.Crypto.SRP.g().powerModule(_b, Clipperz.Crypto.SRP.n()));
+ _u = new Clipperz.Crypto.BigInt(Clipperz.PM.Crypto.encryptingFunctions.versions[someParameters.version].hash(new Clipperz.ByteArray(_B.asString(10))).toHexString(), 16);
+ _A = new Clipperz.Crypto.BigInt("3b3567ec33d73673552e960872eb154d091a2488915941038aef759236a27e64", 16);
+ _S = (_A.multiply(_v.powerModule(_u, Clipperz.Crypto.SRP.n()))).powerModule(_b, Clipperz.Crypto.SRP.n());
+ _K = Clipperz.PM.Crypto.encryptingFunctions.versions[someParameters.version].hash(new Clipperz.ByteArray(_S.asString(10))).toHexString().slice(2);
+ _M1 = Clipperz.PM.Crypto.encryptingFunctions.versions[someParameters.version].hash(new Clipperz.ByteArray(_A.asString(10) + _B.asString(10) + _K)).toHexString().slice(2);
+ _M2 = Clipperz.PM.Crypto.encryptingFunctions.versions[someParameters.version].hash(new Clipperz.ByteArray(_A.asString(10) + _M1 + _K)).toHexString().slice(2);
+
+// MochiKit.Logging.logDebug("b = " + _b.asString(16));
+// MochiKit.Logging.logDebug("v = " + _v.asString(16));
+ MochiKit.Logging.logDebug("B = " + _B.asString(16));
+ MochiKit.Logging.logDebug("u = " + _u.asString(16));
+ MochiKit.Logging.logDebug("S = " + _S.asString(16));
+ MochiKit.Logging.logDebug("K = " + _K);
+ MochiKit.Logging.logDebug("M1 = " + _M1);
+ MochiKit.Logging.logDebug("M2 = " + _M2);
+// MochiKit.Logging.logDebug("someParameters.version: " + someParameters.version);
+*/
+ return this.sendMessage('handshake', someParameters, 'CONNECT');
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'message': function(someParameters) {
+ return this.sendMessage('message', someParameters, 'MESSAGE');
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'logout': function(someParameters) {
+//MochiKit.Logging.logDebug("=== Proxy.DWR.logout");
+ return this.sendMessage('logout', someParameters, 'MESSAGE');
+ },
+
+ //=========================================================================
+
+ 'sendMessage': function(aFunctionName, someParameters, aRequestType) {
+/*
+ var deferredResult;
+ var proxy;
+
+//MochiKit.Logging.logDebug(">>> Proxy.DWR.sendMessage - " + aFunctionName + " - " + aRequestType);
+ proxy = this;
+
+ deferredResult = new MochiKit.Async.Deferred();
+//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("x.1 Proxy.DWR.sendMessage - 1: " + res); return res;});
+ deferredResult.addCallback(MochiKit.Base.method(proxy, 'payToll'), aRequestType);
+//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("x.2 Proxy.DWR.sendMessage - 2: " + Clipperz.Base.serializeJSON(res)); return res;});
+ deferredResult.addCallback(MochiKit.Base.method(proxy, 'sendRemoteMessage'), aFunctionName);
+//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("x.3 Proxy.DWR.sendMessage - 3: " + res); return res;});
+//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("x.3 Proxy.DWR.sendMessage - 3: " + Clipperz.Base.serializeJSON(res)); return res;});
+ deferredResult.callback(someParameters);
+
+//MochiKit.Logging.logDebug("<<< Proxy.DWR.sendMessage");
+ return deferredResult;
+*/
+
+// return this.sendRemoteMessage(aFunctionName, someParameters);
+
+
+ var deferredResult;
+ var proxy;
+
+ proxy = this;
+
+ deferredResult = new MochiKit.Async.Deferred();
+ deferredResult.addCallback(MochiKit.Base.method(proxy, 'sendRemoteMessage'), aFunctionName);
+//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("x.3 Proxy.PHP.sendMessage - 3: " + res); return res;});
+//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("x.3 Proxy.PHP.sendMessage - 3.1: " + Clipperz.Base.serializeJSON(res)); return res;});
+
+ deferredResult.callback(someParameters);
+
+ return deferredResult;
+ },
+
+ //=========================================================================
+
+ 'sendRemoteMessage': function(aFunctionName, someParameters) {
+/*
+ var deferredResult;
+
+//MochiKit.Logging.logDebug(">>> Proxy.DWR.sendRemoteMessage('" + aFunctionName + "', " + Clipperz.Base.serializeJSON(someParameters) + ") - " + this);
+ deferredResult = new MochiKit.Async.Deferred();
+//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Proxy.DWR.sendRemoteMessage - 1: " + res); return res;});
+// deferredResult.addCallback(MochiKit.Base.method(this, 'setTollCallback'));
+//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Proxy.DWR.sendRemoteMessage - 2: " + res); return res;});
+
+ com_clipperz_pm_Proxy[aFunctionName](Clipperz.Base.serializeJSON(someParameters), {
+ callback:MochiKit.Base.method(deferredResult, 'callback'),
+ errorHandler:MochiKit.Base.method(deferredResult, 'errback')
+ });
+//MochiKit.Logging.logDebug("<<< Proxy.PHP.sendRemoteMessage - result: " + deferredResult);
+
+ return deferredResult;
+*/
+
+ var deferredResult;
+ var parameters;
+
+//MochiKit.Logging.logDebug(">>> Proxy.PHP.sendRemoteMessage('" + aFunctionName + "', " + Clipperz.Base.serializeJSON(someParameters) + ") - " + this);
+ parameters = {};
+ parameters['method'] = aFunctionName;
+// parameters['version'] = someParameters['version'];
+// parameters['message'] = someParameters['message'];
+ parameters['parameters'] = Clipperz.Base.serializeJSON(someParameters);
+//MochiKit.Logging.logDebug("--- Proxy.PHP.sendRemoteMessage('" + Clipperz.Base.serializeJSON(parameters) + ") - " + this);
+ deferredResult = new MochiKit.Async.Deferred();
+ deferredResult.addCallback(MochiKit.Async.doXHR, "./php/index.php", {
+ method:'POST',
+ sendContent:MochiKit.Base.queryString(parameters),
+ headers:{"Content-Type":"application/x-www-form-urlencoded"}
+ });
+//deferredResult.addCallback(function(res) {MochiKit.Logging.logDebug("Proxy.PHP.response - 2: " + res.responseText); return res;});
+//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("Proxy.PHP.response - ERROR: " + res); return res;});
+ deferredResult.addCallback(MochiKit.Async.evalJSONRequest);
+ deferredResult.callback();
+
+ return deferredResult;
+ },
+
+ //=========================================================================
+
+ 'isReadOnly': function() {
+ return false;
+ },
+
+ //=========================================================================
+ __syntaxFix__: "syntax fix"
+
+});
+
+//=============================================================================
+
+//Clipperz.PM.Proxy.defaultProxy = new Clipperz.PM.Proxy.PHP("Proxy.PHP - async test");