srp_test.js 662 B

123456789101112131415161718192021
  1. new sjcl.test.TestCase("SRP known-answer (RFC 5054) tests", function (cb) {
  2. if (!sjcl.keyexchange.srp) {
  3. this.unimplemented();
  4. cb && cb();
  5. return;
  6. }
  7. var i, kat = sjcl.test.vector.srp, tv, group, v, x;
  8. for (i=0; i<kat.length; i++) {
  9. tv = kat[i];
  10. group = sjcl.keyexchange.srp.knownGroup(tv.known_group_size);
  11. tv.s = sjcl.codec.hex.toBits(tv.s);
  12. x = sjcl.keyexchange.srp.makeX(tv.I, tv.P, tv.s);
  13. this.require(sjcl.codec.hex.fromBits(x).toUpperCase() === tv.x, "srpx #"+i);
  14. v = sjcl.keyexchange.srp.makeVerifier(tv.I, tv.P, tv.s, group);
  15. this.require(v.equals(new sjcl.bn(tv.v)), "srpv #"+i);
  16. }
  17. cb && cb();
  18. });