| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- new sjcl.test.TestCase("Bignum modular reduction test", function (cb) {
- if (!sjcl.bn) {
- this.unimplemented();
- cb && cb();
- return;
- }
-
- var a, N, r;
- for (i=0; i < sjcl.test.vector.bn_mod.length; i++) {
- tv = sjcl.test.vector.bn_mod[i];
- try {
- a = new sjcl.bn(tv.a);
- N = new sjcl.bn(tv.N);
- r = a.mod(N);
- this.require(r.equals(new sjcl.bn(tv.r)));
- } catch(e) {
- this.fail(e);
- }
- }
- cb && cb();
- });
- new sjcl.test.TestCase("Bignum modular multiplication test", function (cb) {
- if (!sjcl.bn) {
- this.unimplemented();
- cb && cb();
- return;
- }
-
- var a, b, N, r;
- for(var j=0;j<10;j++)for (i=0; i < sjcl.test.vector.bn_mulmod.length; i++) {
- tv = sjcl.test.vector.bn_mulmod[i];
- try {
- a = new sjcl.bn(tv.a);
- b = new sjcl.bn(tv.b);
- N = new sjcl.bn(tv.N);
- r = a.mulmod(b, N);
- this.require(r.equals(new sjcl.bn(tv.r)));
- } catch(e) {
- this.fail(e);
- }
- }
- cb && cb();
- });
- new sjcl.test.TestCase("Bignum modular exponentiation test", function (cb) {
- if (!sjcl.bn) {
- this.unimplemented();
- cb && cb();
- return;
- }
-
- var i, tv, g, x, N, v;
- for (i=0; i < sjcl.test.vector.bn_powermod.length; i++) {
- tv = sjcl.test.vector.bn_powermod[i];
- try {
- g = new sjcl.bn(tv.g);
- x = new sjcl.bn(tv.x);
- N = new sjcl.bn(tv.N);
- v = g.powermod(x, N);
- this.require(v.equals(new sjcl.bn(tv.v)));
- } catch(e) {
- this.fail(e);
- }
- }
- cb && cb();
- });
|