mirror of
http://git.whoc.org.uk/git/password-manager.git
synced 2025-10-25 01:37:34 +02:00
- updated reference dates; - removed reference to Community Edition; - normalized logging using Clipperz.log[Warn|Error|Debug]
151 lines
6.5 KiB
HTML
151 lines
6.5 KiB
HTML
<!--
|
|
|
|
Copyright 2008-2013 Clipperz Srl
|
|
|
|
This file is part of Clipperz, the online password manager.
|
|
For further information about its features and functionalities please
|
|
refer to http://www.clipperz.com.
|
|
|
|
* Clipperz 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.
|
|
|
|
* Clipperz 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 Clipperz. If not, see http://www.gnu.org/licenses/.
|
|
|
|
-->
|
|
|
|
<html>
|
|
<head>
|
|
<!-- - ->
|
|
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
|
|
<!- - -->
|
|
<!-- -->
|
|
<script type="text/javascript" src="../../../../js/MochiKit/Base.js"></script>
|
|
<script type="text/javascript" src="../../../../js/MochiKit/Async.js"></script>
|
|
<script type="text/javascript" src="../../../../js/MochiKit/DOM.js"></script>
|
|
<script type="text/javascript" src="../../../../js/MochiKit/Logging.js"></script>
|
|
<script type="text/javascript" src="../../../../js/MochiKit/Iter.js"></script>
|
|
<!-- -->
|
|
|
|
<!-- - ->
|
|
<script type="text/javascript" src="../../../../js/MochiKit/Style.js"></script>
|
|
<script type="text/javascript" src="../../../../js/MochiKit/Signal.js"></script>
|
|
<script type="text/javascript" src="../../../../js/MochiKit/Color.js"></script>
|
|
<script type="text/javascript" src="../../../../js/MochiKit/Position.js"></script>
|
|
<script type="text/javascript" src="../../../../js/MochiKit/Visual.js"></script>
|
|
<!- - -->
|
|
|
|
|
|
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">
|
|
|
|
<!--<script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script>-->
|
|
<!--<script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script>-->
|
|
<!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script>-->
|
|
|
|
<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Value.js'></script>
|
|
<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Point.js'></script>
|
|
<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js'></script>
|
|
<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Curve.js'></script>
|
|
|
|
<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/StandardCurves.js'></script>
|
|
|
|
</head>
|
|
<body>
|
|
<pre id="test">
|
|
<script type="text/javascript">
|
|
try {
|
|
|
|
var deferredResult;
|
|
|
|
|
|
deferredResult = new MochiKit.Async.Deferred();
|
|
//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 1: " + res); return res;});
|
|
|
|
//
|
|
// ECC.Curve.multiplication
|
|
//
|
|
var curve;
|
|
var f2m;
|
|
var f2m_improved;
|
|
var value;
|
|
var moduledValue;
|
|
var result;
|
|
var result_improved;
|
|
var expectedResul;
|
|
|
|
f2m = new Clipperz.Crypto.ECC.BinaryField.FiniteField({modulus:new Clipperz.Crypto.ECC.BinaryField.Value('08000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000010a1', 16)})
|
|
f2m_improved = Clipperz.Crypto.ECC.StandardCurves.B283().finiteField();
|
|
|
|
curve = Clipperz.Crypto.ECC.StandardCurves.B283();
|
|
|
|
/** /
|
|
value = new Clipperz.Crypto.ECC.BinaryField.Value("7b", 16);
|
|
result = curve.multiply(value, curve.G());
|
|
expectedResult = new Clipperz.Crypto.ECC.BinaryField.Point({
|
|
x: new Clipperz.Crypto.ECC.BinaryField.Value('29705d23a9cda75e43984bdb9a8fd33304682da0f506a69bdbd5f36657e11b41e35fcdd', 16),
|
|
y: new Clipperz.Crypto.ECC.BinaryField.Value('59157d2ace16563a905361c5206cc0775c3330f4978bddf8aa9916c451cf9951313623b', 16)
|
|
});
|
|
is(result.x().asString(16), expectedResult.x().asString(16), "ECC.Curve.multiplication: result.x does match");
|
|
is(result.y().asString(16), expectedResult.y().asString(16), "ECC.Curve.multiplication: result.y does match");
|
|
/ **/
|
|
|
|
value = new Clipperz.Crypto.ECC.BinaryField.Value("ba35032a24eb81238251d85824998bebae3b3e09f4d3845256c87585cf62416ee43191", 16);
|
|
|
|
//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 6: " + res); return res;});
|
|
// deferredResult.addCallback(console.time, 'B283.deferred.multiply - moduled value');
|
|
//deferredResult.addBoth(function(res) {MochiKit.Base.logDebug("2 - " + res); return res;});
|
|
//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 7: " + res); return res;});
|
|
deferredResult.addMethod(curve, 'deferredMultiply', value, curve.G());
|
|
//deferredResult.addBoth(function(res) {MochiKit.Base.logDebug("3 - " + res); return res;});
|
|
//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 8: " + res); return res;});
|
|
// deferredResult.addBoth(function(res) {console.timeEnd('B283.deferred.multiply - moduled value'); return res;});
|
|
//deferredResult.addBoth(function(res) {MochiKit.Base.logDebug("4 - " + res); return res;});
|
|
//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 9: " + res); return res;});
|
|
deferredResult.addCallback(function(res) {
|
|
var expectedResult;
|
|
|
|
expectedResult = new Clipperz.Crypto.ECC.BinaryField.Point({
|
|
x: new Clipperz.Crypto.ECC.BinaryField.Value('7cf07c0880d1ae59f567a2ce420e78d1fdfc1249df694a60e5d40d23c6dc631e1501b77', 16),
|
|
y: new Clipperz.Crypto.ECC.BinaryField.Value('97d1257d5c98cf71cf481bc0a495e0588150ea904526f503cd600f5e971c39700e95f1', 16)
|
|
});
|
|
|
|
is(res.x().asString(16), expectedResult.x().asString(16), "ECC.Curve.multiplication: result.x does match");
|
|
is(res.y().asString(16), expectedResult.y().asString(16), "ECC.Curve.multiplication: result.y does match");
|
|
})
|
|
//deferredResult.addBoth(function(res) {MochiKit.Base.logDebug("5 - " + res); return res;});
|
|
//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 10: " + res); return res;});
|
|
deferredResult.addBoth(function(res) {SimpleTest.finish(); return res;});
|
|
deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug(res); return res;});
|
|
deferredResult.callback();
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
//-------------------------------------------------------------------------
|
|
} catch (err) {
|
|
|
|
var s = "test suite failure!\n";
|
|
var o = {};
|
|
var k = null;
|
|
for (k in err) {
|
|
// ensure unique keys?!
|
|
if (!o[k]) {
|
|
s += k + ": " + err[k] + "\n";
|
|
o[k] = err[k];
|
|
}
|
|
}
|
|
ok ( false, s );
|
|
}
|
|
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|