summaryrefslogtreecommitdiffstats
path: root/test/hmac_test.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/hmac_test.js')
-rw-r--r--test/hmac_test.js16
1 files changed, 14 insertions, 2 deletions
diff --git a/test/hmac_test.js b/test/hmac_test.js
index 8f9ca32..7b70688 100644
--- a/test/hmac_test.js
+++ b/test/hmac_test.js
@@ -5,11 +5,23 @@ new sjcl.test.TestCase("HMAC official test vectors", function (cb) {
return;
}
- var i, kat = sjcl.test.vector.hmac, tv, h=sjcl.codec.hex, out;
+ var i, kat = sjcl.test.vector.hmac, tv, h=sjcl.codec.hex, out, data, mac;
for (i=0; i<kat.length; i++) {
tv = kat[i];
- out = h.fromBits((new sjcl.misc.hmac(h.toBits(tv.key))).mac(h.toBits(tv.data)));
+ data = h.toBits(tv.data);
+ mac = new sjcl.misc.hmac(h.toBits(tv.key));
+
+ out = h.fromBits(mac.mac(data));
this.require (out.substr(0,tv.mac.length) == tv.mac, "hmac #"+i);
+
+ out = h.fromBits(mac.mac(data));
+ this.require (out.substr(0,tv.mac.length) == tv.mac, "hmac reset #"+i);
+
+ mac.update(sjcl.bitArray.bitSlice(data, 0, sjcl.bitArray.bitLength(data)/2));
+ mac.update(sjcl.bitArray.bitSlice(data, sjcl.bitArray.bitLength(data)/2));
+
+ out = h.fromBits(mac.digest());
+ this.require (out.substr(0,tv.mac.length) == tv.mac, "hmac reset #"+i);
}
cb && cb();
});