summaryrefslogtreecommitdiff
path: root/frontend/gamma/tests/tests/Clipperz/PM/Crypto_test.html
Side-by-side diff
Diffstat (limited to 'frontend/gamma/tests/tests/Clipperz/PM/Crypto_test.html') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/gamma/tests/tests/Clipperz/PM/Crypto_test.html169
1 files changed, 169 insertions, 0 deletions
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Crypto_test.html b/frontend/gamma/tests/tests/Clipperz/PM/Crypto_test.html
new file mode 100644
index 0000000..f5b0a60
--- a/dev/null
+++ b/frontend/gamma/tests/tests/Clipperz/PM/Crypto_test.html
@@ -0,0 +1,169 @@
+<!--
+
+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/>.
+
+-->
+
+<html>
+<head>
+ <title>Clipperz.PM.Crypto - TEST</title>
+
+ <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
+
+ <script type='text/javascript' src='../../../../js/JSON/json2.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script>
+
+ <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script>
+
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script>
+
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script>
+
+
+<!-- ================================================================================ --> <script>
+//MochiKit.DOM.addLoadEvent(MochiKit.Base.partial(MochiKit.LoggingPane.createLoggingPane, true));
+//MochiKit.Logging.logger.useNativeConsole = true;
+
+//-----------------------------------------------------------------------------
+
+encodePassword = function (anEvent) {
+ var username;
+ var password;
+ var encodedPassword;
+ var srpConnection;
+
+ anEvent.stop();
+
+ srpConnection = new Clipperz.PM.Connection.SRP['1.1']();
+
+ username = MochiKit.DOM.getElement('username').value;
+ passphrase = MochiKit.DOM.getElement('passphrase').value;
+ encodedPassword = srpConnection.normalizedCredentials({'username':username , 'password':passphrase })['password'];
+
+ MochiKit.DOM.getElement('encodedPassword').value = encodedPassword;
+}
+
+//-----------------------------------------------------------------------------
+
+decryptData = function (anEvent) {
+ var deferredResult;
+ var key;
+ var version;
+ var value;
+
+ key = MochiKit.DOM.getElement('key').value;
+ version = MochiKit.DOM.getElement('version').value;
+ value = MochiKit.DOM.getElement('encryptedText').value;
+
+ anEvent.stop();
+
+ deferredResult = new Clipperz.Async.Deferred("Decrypted data", {trace:false});
+ deferredResult.addCallback(Clipperz.PM.Crypto.deferredDecrypt, {key:key, version:version, value:value});
+ deferredResult.addCallback(Clipperz.Base.serializeJSON);
+ deferredResult.addCallback(function (aValue) {
+ MochiKit.DOM.getElement('decryptedText').value = aValue;
+ });
+ deferredResult.addErrback(alert);
+
+ deferredResult.callback();
+}
+
+//-----------------------------------------------------------------------------
+
+encryptData = function (anEvent) {
+ var deferredResult;
+ var key;
+ var version;
+ var value;
+
+ key = MochiKit.DOM.getElement('key').value;
+ version = MochiKit.DOM.getElement('version').value;
+ value = Clipperz.Base.evalJSON(MochiKit.DOM.getElement('decryptedText').value);
+
+ anEvent.stop();
+
+ deferredResult = new Clipperz.Async.Deferred("Encrypted data", {trace:false});
+ deferredResult.addCallback(Clipperz.PM.Crypto.deferredEncrypt, {key:key, version:version, value:value});
+ deferredResult.addCallback(function (aValue) {
+ MochiKit.DOM.getElement('encryptedText').value = aValue;
+ });
+ deferredResult.addErrback(alert);
+
+ deferredResult.callback();
+}
+
+//-----------------------------------------------------------------------------
+
+init = function () {
+ Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose();
+
+
+ MochiKit.Signal.connect('decryptForm', 'onsubmit', decryptData)
+ MochiKit.Signal.connect('decryptButton', 'onclick', decryptData)
+ MochiKit.Signal.connect('encryptButton', 'onclick', encryptData)
+
+// MochiKit.Signal.connect('encodePassword', 'onclick', encodePassword)
+}
+
+//-----------------------------------------------------------------------------
+
+MochiKit.DOM.addLoadEvent(init);
+
+</script> <!-- =============================================================================== -->
+
+</head>
+<body>
+<!--
+ <form id='computeKey'>
+ <input type='text' name='username' value='' id='username' size='30'/>
+ <input type='text' name='passphrase' value='' id='passphrase' size='30'/>
+ <input type='button' name='encode' value='encode' id='encodePassword'>
+ <input type='text' name='encodedPassword' value='' id='encodedPassword' size='30'/>
+ </form>
+ <hr>
+-->
+ <form id='decryptForm'>
+ <div><textarea id='encryptedText' cols='80' rows='20'></textarea></div>
+ <div><input type='text' name='key' value='' id='key' size='30'/></div>
+ <div><input type='text' name='version' value='0.3' id='version' /></div>
+ <div><input type='button' name='decrypt' value='decrypt' id='decryptButton'> <input type='button' name='encrypt' value='encrypt' id='encryptButton'></div>
+ <hr>
+ <div><textarea id='decryptedText' cols='80' rows='20' style="background-color: lightgrey;">&lt;result&gt;</textarea></div>
+ </form>
+
+</body>
+</html> \ No newline at end of file