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.html | 169 |
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;"><result></textarea></div> + </form> + +</body> +</html>
\ No newline at end of file |