Diffstat (limited to 'frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html') (more/less context) (show whitespace changes)
-rw-r--r-- | frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html b/frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html new file mode 100644 index 0000000..7ffd691 --- a/dev/null +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html | |||
@@ -0,0 +1,117 @@ | |||
1 | <!-- | ||
2 | |||
3 | Copyright 2008-2011 Clipperz Srl | ||
4 | |||
5 | This file is part of Clipperz's Javascript Crypto Library. | ||
6 | Javascript Crypto Library provides web developers with an extensive | ||
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | ||
11 | refer to http://www.clipperz.com | ||
12 | |||
13 | * Javascript Crypto Library is free software: you can redistribute | ||
14 | it and/or modify it under the terms of the GNU Affero General Public | ||
15 | License as published by the Free Software Foundation, either version | ||
16 | 3 of the License, or (at your option) any later version. | ||
17 | |||
18 | * Javascript Crypto Library is distributed in the hope that it will | ||
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | ||
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
21 | See the GNU Affero General Public License for more details. | ||
22 | |||
23 | * You should have received a copy of the GNU Affero General Public | ||
24 | License along with Javascript Crypto Library. If not, see | ||
25 | <http://www.gnu.org/licenses/>. | ||
26 | |||
27 | --> | ||
28 | |||
29 | <html> | ||
30 | <head> | ||
31 | <script> jslog_config_enabled = true; </script> | ||
32 | |||
33 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | ||
34 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> | ||
35 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | ||
36 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | ||
37 | |||
38 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | ||
39 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | ||
40 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | ||
41 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | ||
42 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | ||
43 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> | ||
44 | |||
45 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/Statistics.js'></script>--> | ||
46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | ||
47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | ||
48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | ||
49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | ||
50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | ||
51 | </head> | ||
52 | <body> | ||
53 | <pre id="test"> | ||
54 | <script type="text/javascript"> | ||
55 | test_PRNG = function() { | ||
56 | varrand1, rand2; | ||
57 | var i,c; | ||
58 | |||
59 | c = 10; | ||
60 | for (i=0; i<c; i++) { | ||
61 | // jslog.debug(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString()); | ||
62 | } | ||
63 | |||
64 | rand1 = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(1); | ||
65 | is(rand1.byteAtIndex(0) <= 255, true, "getRandomByte returns always a single byte"); | ||
66 | |||
67 | rand2 = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(1); | ||
68 | is(rand1.equals(rand2), false, "getRandomByte should almost always return two different values when called into sequence"); | ||
69 | |||
70 | |||
71 | rand1 = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); | ||
72 | rand2 = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); | ||
73 | is(rand1.equals(rand2), false, "getRandomByte should almost always return two different values when called into sequence"); | ||
74 | is(rand1.split(0,1).equals(rand2.split(0,1)), false, "getRandomByte should almost always return two different values when called into sequence"); | ||
75 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 1", "Value for random test"); | ||
76 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 2", "Value for random test"); | ||
77 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 3", "Value for random test"); | ||
78 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 4", "Value for random test"); | ||
79 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 5", "Value for random test"); | ||
80 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 6", "Value for random test"); | ||
81 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 7", "Value for random test"); | ||
82 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 8", "Value for random test"); | ||
83 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 9", "Value for random test"); | ||
84 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 10", "Value for random test"); | ||
85 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 11", "Value for random test"); | ||
86 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 12", "Value for random test"); | ||
87 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 13", "Value for random test"); | ||
88 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 14", "Value for random test"); | ||
89 | //jslog.debug(rand1.toHexString()); | ||
90 | //jslog.debug(rand2.toHexString()); | ||
91 | |||
92 | SimpleTest.finish(); | ||
93 | } | ||
94 | |||
95 | try { | ||
96 | MochiKit.Signal.connect(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'readyToGenerateRandomBytes', test_PRNG); | ||
97 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | ||
98 | SimpleTest.waitForExplicitFinish(); | ||
99 | } catch (err) { | ||
100 | |||
101 | var s = "test suite failure!\n"; | ||
102 | var o = {}; | ||
103 | var k = null; | ||
104 | for (k in err) { | ||
105 | // ensure unique keys?! | ||
106 | if (!o[k]) { | ||
107 | s += k + ": " + err[k] + "\n"; | ||
108 | o[k] = err[k]; | ||
109 | } | ||
110 | } | ||
111 | ok ( false, s ); | ||
112 | } | ||
113 | |||
114 | </script> | ||
115 | </pre> | ||
116 | </body> | ||
117 | </html> | ||