chromium/chrome/test/data/third_party/kraken/tests/kraken-1.1/stanford-crypto-pbkdf2.js

/* From http://www.cryptosys.net/manapi/api_PBE_Kdf2.html */

new sjcl.test.TestCase("PBKDF2", function (cb) {
  if (!sjcl.misc.pbkdf2 || !sjcl.misc.hmac || !sjcl.hash.sha256) {
    this.unimplemented();
    cb && cb();
    return;
  }

  //XXX use 8 inputs, not 8 iterations
  for (var index = 0; index < 8; index++) {  
      var h = sjcl.codec.hex, password = "password", salt = "78 57 8E 5A 5D 63 CB 06", count = 2048, output,
          goodOutput = "97b5a91d35af542324881315c4f849e327c4707d1bc9d322";
      output = sjcl.misc.pbkdf2(password, h.toBits(salt), count);
      output = h.fromBits(output);
      this.require(output.substr(0,goodOutput.length) == goodOutput);
      cb && cb();
  }
});
sjcl.test.run();