Browse Source

test srp x and v

Quinn Slack 15 years ago
parent
commit
44ddce8d5f
1 changed files with 9 additions and 6 deletions
  1. 9 6
      test/srp_test.js

+ 9 - 6
test/srp_test.js

@@ -5,15 +5,18 @@ new sjcl.test.TestCase("SRP known-answer (RFC 5054) tests", function (cb) {
     return;
   }
 
-  var i, kat = sjcl.test.vector.srp, tv, N, g, v;
+  var i, kat = sjcl.test.vector.srp, tv, N, g, v, x;
 
   for (i=0; i<kat.length; i++) {
     tv = kat[i];
-    N = sjcl.keyexchange.srp.knownGroups[tv.known_group_size].N;
-    g = sjcl.keyexchange.srp.knownGroups[tv.known_group_size].g;
-    v = sjcl.keyexchange.srp.makeVerifier(tv.I, tv.P, tv.s, N, g)
-      print("-> v = " + v);
-    this.require(sjcl.bitArray.equal(v, tv.v), "srpv #"+i);
+    N = sjcl.keyexchange.srp.knownGroup(tv.known_group_size).N;
+    g = sjcl.keyexchange.srp.knownGroup(tv.known_group_size).g;
+    tv.s = sjcl.codec.hex.toBits(tv.s);
+    x = sjcl.keyexchange.srp.makeX(tv.I, tv.P, tv.s);
+    this.require(sjcl.codec.hex.fromBits(x).toUpperCase() === tv.x, "srpx #"+i);
+
+    v = sjcl.keyexchange.srp.makeVerifier(tv.I, tv.P, tv.s, N, g);
+    this.require(v.equals(new sjcl.bn(tv.v)), "srpv #"+i);
   }
   cb && cb();
 });