summaryrefslogtreecommitdiff
path: root/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html
Unidiff
Diffstat (limited to 'frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html') (more/less context) (show whitespace changes)
-rw-r--r--frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html496
1 files changed, 496 insertions, 0 deletions
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html
new file mode 100644
index 0000000..885bcc4
--- a/dev/null
+++ b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html
@@ -0,0 +1,496 @@
1<!--
2
3Copyright 2008-2011 Clipperz Srl
4
5This file is part of Clipperz's Javascript Crypto Library.
6Javascript Crypto Library provides web developers with an extensive
7and efficient set of cryptographic functions. The library aims to
8obtain maximum execution speed while preserving modularity and
9reusability.
10For further information about its features and functionalities please
11refer 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 type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
32 <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
33 <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
34 <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">
35
36 <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script>
37 <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script>
38
39 <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script>
40 <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script>
41<!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC.js'></script>-->
42 <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Value.js'></script>
43 <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Point.js'></script>
44 <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js'></script>
45 <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Curve.js'></script>
46 <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Functions.js'></script>
47</head>
48<body>
49<pre id="test">
50<script type="text/javascript">
51try {
52 var value_1;
53 var value_2;
54
55 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("a", 16);
56 is(value_1.asString(16), "0a");
57
58 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("ffff", 16);
59 is(value_1.asString(16), "ffff");
60
61 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("7fff", 16);
62 is(value_1.asString(16), "7fff");
63
64 is(parseInt("ffff", 16), 65535);
65 is(parseInt("ffffff", 16), 16777215);
66 is(parseInt("ffffffff", 16), 4294967295);
67 is(parseInt("ffffffffff", 16), 1099511627775);
68 is(parseInt("ffffffffffff", 16), 281474976710655);
69 is(parseInt("ffffffffffffff", 16), 72057594037927940);
70 is(parseInt("ffffffffffffffff", 16), 18446744073709552000);
71 is(parseInt("10000000000000000", 16), 18446744073709552001);
72 is(parseInt("10000000000000001", 16), 18446744073709552002);
73 is(parseInt("10000000000000009", 16), 18446744073709552010);
74
75 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("000108cbbacda1f03ea9360301045434ec7d82ba150936df08a229cbb4832ce1", 16);
76 is(value_1.wordSize(), 8, "check the number of words of a 64 char hex string using the 'wordSize' method");
77
78 // 000108cb bacda1f0 3ea93603 01045434 ec7d82ba 150936df 08a229cb b4832ce1
79 is(value_1.value()[0], parseInt("b4832ce1", 16), "word[0]");
80 is(value_1.value()[1], parseInt("08a229cb", 16), "word[1]");
81 is(value_1.value()[2], parseInt("150936df", 16), "word[2]");
82 is(value_1.value()[3], parseInt("ec7d82ba", 16), "word[3]");
83 is(value_1.value()[4], parseInt("01045434", 16), "word[4]");
84 is(value_1.value()[5], parseInt("3ea93603", 16), "word[5]");
85 is(value_1.value()[6], parseInt("bacda1f0", 16), "word[6]");
86 is(value_1.value()[7], parseInt("000108cb", 16), "word[7]");
87
88 is(value_1.asString(16), "0108cbbacda1f03ea9360301045434ec7d82ba150936df08a229cbb4832ce1", "asString(16)");
89
90 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value('10 00000000 00000000', 16);
91 is(value_1.wordSize(), 3, "check the number of words of a value with only a bit set on the first slot of byte at position 17");
92 is(value_1.value()[0], parseInt("00000000", 16), "word[0]");
93 is(value_1.value()[1], parseInt("00000000", 16), "word[1]");
94 is(value_1.value()[2], parseInt("10", 16), "word[2]");
95 is(value_1.asString(16), "100000000000000000", "2^17 asString(16)");
96
97 //
98 //XOR
99 //
100 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 16);
101 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 16);
102 result = value_1.xor(value_2);
103 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('0', 16);
104 is(result.asString(16), expectedResult.asString(16), "a xor a = 0");
105
106 //
107 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b934c a495991b 7852b855', 16);
108 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b935c a495991b 7852b855', 16);
109 result = value_1.xor(value_2);
110 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('10 00000000 00000000', 16);
111 is(result.asString(16), expectedResult.asString(16), "single bit difference");
112
113 //
114 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("01", 16);
115 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b935ca495991b7852b855', 16);
116 result = value_1.xor(value_2);
117 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b935ca495991b7852b854', 16);
118 is(result.asString(16), expectedResult.asString(16), "01 xor value");
119
120 //
121 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 16);
122 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value('f3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 16);
123 result = value_1.xor(value_2);
124 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('1000000000000000000000000000000000000000000000000000000000000000', 16);
125 is(result.asString(16), expectedResult.asString(16), "first bit difference xor");
126
127 //
128 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value('84a2c58a', 16);
129 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value('38925faf', 16);
130 result = value_1.xor(value_2);
131 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('bc309a25', 16);
132 is(result.asString(16), expectedResult.asString(16), "84a2c58a XOR 38925faf = bc309a25");
133
134 //
135 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("01401ca87b8f144684a2c58ae9308c237789e4bf1f36dd117c150b7d6076dd1da6197fe4c5225a064db0e4222589d5ca50eb6bb6b7147a03f61528438a8767c6a6c4a6883fd6f067", 16);
136 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("0112f5c97e74737b38925fafe22cea3e12b868d4ddea5b3341db8fc2e788cab74f0a7a3cc27087a89365945369938650a99217d566e13f80dc87f08273f7411b6b01ef1d399c772a", 16);
137 result = value_1.xor(value_2);
138 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('0052e96105fb673dbc309a250b1c661d65318c6bc2dc86223dce84bf87fe17aae91305d80752ddaeded570714c1a539af9797c63d1f545832a92d8c1f97026ddcdc54995064a874d', 16);
139 is(result.asString(16), expectedResult.asString(16), "xor");
140
141
142 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000425", 16);
143 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("01ebcb09fac51945162a0775f42df6151169826efdc55dea5d17c22adb92e6b1a6ae8311545ad7e0f46f09a5b960855e673db1e803a5b94562161213204ca1f24792e81f06a4f816429a492f106cc6d0b0ff4617b736dab590590a8cff9f807a15282544404e6b35841703c9fb00a9cad1d6878d601efc25368bdc51d5ff14a81610f4fe62cb2f452aee520a16", 16);
144 result = value_2.xor(value_1.shiftLeft(value_2.bitSize() - value_1.bitSize()));
145 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value("ebcb09fac51945162a0775f42df6151169826efdc55dea5d17c22adb92e6b1a6ae8311545ad7e0f46f09a5b960855e673db1e803a5b94562161213204ca1f24792e81f06a4f892e29a492f106cc6d0b0ff4617b736dab590590a8cff9f807a15282544404e6b35841703c9fb00a9cad1d6878d601efc25368bdc51d5ff14a81610f4fe62cb2f452aee520a16", 16);
146 is(result.asString(16), expectedResult.asString(16), "xor");
147 is(result.bitSize(), 1120, "xor.bitSize");
148 is(result.wordSize(), 35, "result wordSize");
149 is(expectedResult.bitSize(), 1120, "xor.bitSize");
150 is(expectedResult.wordSize(), 35, "expectedResult wordSize");
151 is(result.compare(expectedResult), 0, "compare");
152
153
154 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000425", 16);
155 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("ebcb09fac51945162a0775f42df6151169826efdc55dea5d17c22adb92e6b1a6ae8311545ad7e0f46f09a5b960855e673db1e803a5b94562161213204ca1f24792e81f06a4f892e29a492f106cc6d0b0ff4617b736dab590590a8cff9f807a15282544404e6b35841703c9fb00a9cad1d6878d601efc25368bdc51d5ff14a81610f4fe62cb2f452aee520a16", 16);
156 result = value_2.xor(value_1.shiftLeft(value_2.bitSize() - value_1.bitSize()));
157 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value("6bcb09fac51945162a0775f42df6151169826efdc55dea5d17c22adb92e6b1a6ae8311545ad7e0f46f09a5b960855e673db1e803a5b94562161213204ca1f24792e81f06a4f8d0b29a492f106cc6d0b0ff4617b736dab590590a8cff9f807a15282544404e6b35841703c9fb00a9cad1d6878d601efc25368bdc51d5ff14a81610f4fe62cb2f452aee520a16", 16);
158 is(result.asString(16), expectedResult.asString(16), "xor");
159 is(result.bitSize(), 1119, "xor.bitSize");
160 is(expectedResult.bitSize(), 1119, "xor.bitSize");
161 is(result.compare(expectedResult), 0, "compare");
162 //value_1 =
163 //value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000042500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", 16);
164
165
166 value_1 = (new Clipperz.Crypto.ECC.BinaryField.Value("10101010 01010101 00000000", 16)).value();
167 value_2 = (new Clipperz.Crypto.ECC.BinaryField.Value("10101010", 16)).value();
168 result = new Clipperz.Crypto.ECC.BinaryField.Value(Clipperz.Crypto.ECC.BinaryField.Value._xor(value_1, value_2, 2));
169 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value("01010101 00000000", 16);
170 is(result.asString(16), expectedResult.asString(16), "xor with offset 2");
171
172 value_1 = (new Clipperz.Crypto.ECC.BinaryField.Value(" 10101010 01010101 00000000", 16)).value();
173 value_2 = (new Clipperz.Crypto.ECC.BinaryField.Value("10101010 10101010", 16)).value();
174 result = new Clipperz.Crypto.ECC.BinaryField.Value(Clipperz.Crypto.ECC.BinaryField.Value._xor(value_1, value_2, 2));
175 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value("10101010 00000000 01010101 00000000", 16);
176 is(result.asString(16), expectedResult.asString(16), "xor with offset 2 (2)");
177
178 //
179 //isZero
180 //
181 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value('0', 16);
182 is(value_1.isZero(), true, "0.isZero() == true");
183
184 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value('1', 16);
185 is(value_1.isZero(), false, "1.isZero() == false");
186
187 //
188 //Comparison
189 //
190 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("0", 16);
191 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("0", 16);
192 is (value_1.compare(value_2), 0, "BinaryField.value(0) = BinaryField.value(0)");
193 //is (value_1.compare(0), 0, "BinaryField.value(0) = 0");
194
195 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("000108cbbacda1f03ea9360301045434ec7d82ba150936df08a229cbb4832ce1", 16);
196 is (value_1.compare(value_2), 1, "BinaryField.value(xxxxxx) != BinaryField.value(0)");
197
198 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("000108cbbacda1f03ea9360301045434ec7d82ba150936df08a229cbb4832ce1", 16);
199 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("0", 16);
200 is(value_1.compare(value_2), 1, "BinaryField.value(xxxxxx) > BinaryField.value(0)");
201 is(value_2.compare(value_1), -1, "BinaryField.value(0) < BinaryField.value(xxxx)");
202
203 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("000108cbbacda1f03ea9360301045434ec7d82ba150936df08a229cbb4832ce1", 16);
204 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("05", 16);
205 is(value_1.compare(value_2), 1, "BinaryField.value(xxxxxx) > BinaryField.value(05)");
206 is(value_2.compare(value_1), -1, "BinaryField.value(05) < BinaryField.value(xxxx)");
207
208 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("-10", 16);
209 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("10", 16);
210 is(value_1.compare(value_2), -1, "BinaryField.value(-10) - BinaryField.value(10). No negative number are managed");
211
212 //
213 //more comparison
214 //
215
216 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", 16);
217 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", 16);
218 result = value_1.compare(value_2);
219 is(result, 0, "equal compare");
220
221 //
222 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c442", 16);
223 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("f3b0c442", 16);
224 result = value_1.compare(value_2);
225 is(result, -1, "second term with one more bit at the leftmost - compare (1)");
226
227 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c442 98fc1c14", 16);
228 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("f3b0c442 98fc1c14", 16);
229 result = value_1.compare(value_2);
230 is(result, -1, "second term with one more bit at the leftmost - compare (2)");
231
232 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c442 98fc1c14 9afbf4c8", 16);
233 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("f3b0c442 98fc1c14 9afbf4c8", 16);
234 result = value_1.compare(value_2);
235 is(result, -1, "second term with one more bit at the leftmost - compare (3)");
236
237 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b934c a495991b 7852b855", 16);
238 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("f3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b934c a495991b 7852b855", 16);
239 result = value_1.compare(value_2);
240 is(result, -1, "second term with one more bit at the leftmost - compare (n)");
241
242 //
243 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("f3b0c442", 16);
244 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c442", 16);
245 result = value_1.compare(value_2);
246 is(result, 1, "first term with one more bit at the leftmost - compare (1)");
247
248 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("f3b0c442 98fc1c14", 16);
249 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c442 98fc1c14", 16);
250 result = value_1.compare(value_2);
251 is(result, 1, "first term with one more bit at the leftmost - compare (2)");
252
253 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("f3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b934c a495991b 7852b855", 16);
254 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b934c a495991b 7852b855", 16);
255 result = value_1.compare(value_2);
256 is(result, 1, "first term with one more bit at the leftmost - compare (n)");
257
258 //
259 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c44298fc1c149afbf4c8996fb92427af41e4649b934ca495991b7852b855", 16);
260 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", 16);
261 result = value_1.compare(value_2);
262 is(result, 1, "first term with one more bit in the middle - compare");
263
264 //
265 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c44298fc1c149afbf4c8996fb92427af41e4649b934ca495991b7852b855", 16);
266 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c44298fc1c149afbf4c8996fb92427aeffffffffffffffffffffffffffff", 16);
267 result = value_1.compare(value_2);
268 is(result, 1, "first term with one more bit in the middle - compare");
269
270 //
271 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", 16);
272 value_2 = new Clipperz.Crypto.ECC.BinaryField.Value("05", 16);
273 result = value_1.compare(value_2);
274 is(result, 1, "equal compare");
275
276
277
278 //
279 //isBitSet
280 //
281 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("ff", 16);
282 result = value_1.isBitSet(1);
283 expectedResult = true;
284 is(result, expectedResult, "'ff'.isBitSet(1)");
285
286 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("f0", 16);
287 result =value_1.isBitSet(1);
288 expectedResult = false;
289 is(result, expectedResult, "'f0'.isBitSet(1)");
290
291 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("f0", 16);
292 result = value_1.isBitSet(3);
293 expectedResult = false;
294 is(result, expectedResult, "'f0'.isBitSet(3)");
295
296 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("f0", 16);
297 result = value_1.isBitSet(4);
298 expectedResult = true;
299 is(result, expectedResult, "'f0'.isBitSet(4)");
300
301 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("ff00", 16);
302 result = value_1.isBitSet(7);
303 expectedResult = false;
304 is(result, expectedResult, "'ff00'.isBitSet(7)");
305
306 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("ff00", 16);
307 result = value_1.isBitSet(8);
308 expectedResult = true;
309 is(result, expectedResult, "'ff00'.isBitSet(8)");
310
311 //
312 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("05000000000000", 16);
313 result = value_1.isBitSet(47);
314 expectedResult = false;
315 is(result, expectedResult, "'05000000000000'.isBitSet(47)");
316
317 result = value_1.isBitSet(48);
318 expectedResult = true;
319 is(result, expectedResult, "'05000000000000'.isBitSet(48)");
320
321 result = value_1.isBitSet(49);
322 expectedResult = false;
323 is(result, expectedResult, "'05000000000000'.isBitSet(49)");
324
325 result = value_1.isBitSet(50);
326 expectedResult = true;
327 is(result, expectedResult, "'05000000000000'.isBitSet(50)");
328
329 result = value_1.isBitSet(51);
330 expectedResult = false;
331 is(result, expectedResult, "'05000000000000'.isBitSet(51)");
332
333 //
334 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", 16);
335
336 result = value_1.isBitSet(52);
337 is(result, true, "'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'.isBitSet(52)");
338
339 result = value_1.isBitSet(53);
340 is(result, false, "'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'.isBitSet(53)");
341
342 result = value_1.isBitSet(54);
343 is(result, false, "'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'.isBitSet(54)");
344
345 result = value_1.isBitSet(55);
346 is(result, true, "'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'.isBitSet(55)");
347
348 result = value_1.isBitSet(56);
349 is(result, false, "'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'.isBitSet(56)");
350
351 result = value_1.isBitSet(57);
352 is(result, false, "'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'.isBitSet(57)");
353
354 result = value_1.isBitSet(58);
355 is(result, true, "'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'.isBitSet(58)");
356
357 result = value_1.isBitSet(59);
358 is(result, false, "'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'.isBitSet(59)");
359
360 result = value_1.isBitSet(60);
361 is(result, false, "'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'.isBitSet(60)");
362
363
364 //
365 //shiftLeft
366 //
367
368 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("7f", 16);
369 result = value_1.shiftLeft(1);
370 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('fe', 16);
371 is(result.asString(16), expectedResult.asString(16), "'7f'.shiftLeft(1)");
372
373 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("ff", 16);
374 result = value_1.shiftLeft(1);
375 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('01fe', 16);
376 is(result.asString(16), expectedResult.asString(16), "'ff'.shiftLeft(1)");
377
378 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value( 'ffff', 16);
379 expectedResult =new Clipperz.Crypto.ECC.BinaryField.Value('ffff00', 16);
380 result = value_1.shiftLeft(8);
381 is(result.asString(16), expectedResult.asString(16), "ffff.shiftLeft(8)");
382
383 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value( '80000000', 16);
384 expectedResult =new Clipperz.Crypto.ECC.BinaryField.Value('1 00000000', 16);
385 result = value_1.shiftLeft(1);
386 is(result.compare(expectedResult) == 0, true, '8000000.shiftLeft(1).compare');
387 is(result.asString(16), expectedResult.asString(16), "80000000.shiftLeft(1)");
388
389 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value('20000000', 16);
390 expectedResult =new Clipperz.Crypto.ECC.BinaryField.Value('40000000', 16);
391 result = value_1.shiftLeft(1);
392 is(result.compare(expectedResult) == 0, true, '2000000.shiftLeft(1).compare');
393 is(result.asString(16), expectedResult.asString(16), "20000000.shiftLeft(1)");
394
395 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value('40000000', 16);
396 expectedResult =new Clipperz.Crypto.ECC.BinaryField.Value('80000000', 16);
397 result = value_1.shiftLeft(1);
398 is(result.compare(expectedResult) == 0, true, '4000000.shiftLeft(1).compare');
399 is(result.asString(16), expectedResult.asString(16), "40000000.shiftLeft(1)");
400
401 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value( 'ff7fffff', 16);
402 expectedResult =new Clipperz.Crypto.ECC.BinaryField.Value('ff 7fffff00', 16);
403 result = value_1.shiftLeft(8);
404 is(result.asString(16), expectedResult.asString(16), "ff7fffff.shiftLeft(8)");
405
406 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value( 'ffffffff', 16);
407 expectedResult =new Clipperz.Crypto.ECC.BinaryField.Value('ff ffffff00', 16);
408 result = value_1.shiftLeft(8);
409 is(result.asString(16), expectedResult.asString(16), "ffffffff.shiftLeft(8)");
410
411 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value( "e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b934c a495991b 7852b855", 16);
412 expectedResult =new Clipperz.Crypto.ECC.BinaryField.Value('3 8ec3110a 63f07052 6befd322 65bee490 9eb90791 926e4d32 9256646d e14ae154', 16);
413 result = value_1.shiftLeft(2);
414 is(result.asString(16), expectedResult.asString(16), "Value.shiftLeft(10)");
415
416 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", 16);
417 result = value_1.shiftLeft(8);
418 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85500', 16);
419 is(result.asString(16), expectedResult.asString(16), "Value.shiftLeft(8)");
420
421 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", 16);
422 result = value_1.shiftLeft(10);
423 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('38e c3110a63 f070526b efd32265 bee4909e b9079192 6e4d3292 56646de1 4ae15400', 16);
424 is(result.asString(16), expectedResult.asString(16), "Value.shiftLeft(10)");
425
426 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("ff", 16);
427 result = value_1.shiftLeft(32);
428 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('ff00000000', 16);
429 is(result.asString(16), expectedResult.asString(16), "ff.shiftLeft(32)");
430
431 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("ff", 16);
432 result = value_1.shiftLeft(4096);
433 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('ff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 16);
434 is(result.asString(16), expectedResult.asString(16), "bigInt.shiftLeft(4096)");
435
436 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("ff", 16);
437 result = value_1.shiftLeft(5000);
438 expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('ff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 16);
439 is(result.asString(16), expectedResult.asString(16), "bigInt.shiftLeft(4096)");
440
441 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("0", 16);
442 is(value_1.bitSize(), 0, "0.bitSize()");
443
444 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("10", 16);
445 is(value_1.bitSize(), 5, "10.bitSize()");
446
447 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("80", 16);
448 is(value_1.bitSize(), 8, "80.bitSize()");
449
450 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("ff", 16);
451 is(value_1.bitSize(), 8, "ff.bitSize()");
452
453 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("100", 16);
454 is(value_1.bitSize(), 9, "100.bitSize()");
455
456 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("80000000", 16);
457 is(value_1.bitSize(), 32, "80000000.bitSize()");
458
459 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("ffffffff", 16);
460 is(value_1.bitSize(), 32, "ffffffff.bitSize()");
461
462 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("1 00000000", 16);
463 is(value_1.bitSize(), 33, "100000000.bitSize()");
464
465 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("8000 00000000", 16);
466 is(value_1.bitSize(), 48, "8000 00000000.bitSize()");
467
468 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("ffff ffffffff", 16);
469 is(value_1.bitSize(), 48, "ffff ffffffff.bitSize()");
470
471 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("10000 00000000", 16);
472 is(value_1.bitSize(), 49, "10000 00000000.bitSize()");
473
474 value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("6bcb09fac51945162a0775f42df6151169826efdc55dea5d17c22adb92e6b1a6ae8311545ad7e0f46f09a5b960855e673db1e803a5b94562161213204ca1f24792e81f06a4f8d0b29a492f106cc6d0b0ff4617b736dab590590a8cff9f807a15282544404e6b35841703c9fb00a9cad1d6878d601efc25368bdc51d5ff14a81610f4fe62cb2f452aee520a16", 16);
475 is(value_1.bitSize(), 1119, "6bcb09fac51945162a0775f42df6151169826efdc55dea5d17c22adb92e6b1a6ae8311545ad7e0f46f09a5b960855e673db1e803a5b94562161213204ca1f24792e81f06a4f8d0b29a492f106cc6d0b0ff4617b736dab590590a8cff9f807a15282544404e6b35841703c9fb00a9cad1d6878d601efc25368bdc51d5ff14a81610f4fe62cb2f452aee520a16.bitSize()");
476
477 //-------------------------------------------------------------------------
478} catch (err) {
479
480 var s = "test suite failure!\n";
481 var o = {};
482 var k = null;
483 for (k in err) {
484 // ensure unique keys?!
485 if (!o[k]) {
486 s += k + ": " + err[k] + "\n";
487 o[k] = err[k];
488 }
489 }
490 ok ( false, s );
491}
492
493</script>
494</pre>
495</body>
496</html>