diff options
Diffstat (limited to 'node_modules/crypto-browserify/test/create-hmac.js')
-rw-r--r-- | node_modules/crypto-browserify/test/create-hmac.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/node_modules/crypto-browserify/test/create-hmac.js b/node_modules/crypto-browserify/test/create-hmac.js new file mode 100644 index 0000000..08488ab --- /dev/null +++ b/node_modules/crypto-browserify/test/create-hmac.js @@ -0,0 +1,50 @@ +var test = require('tape') + +var algorithms = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'] +var vectors = require('hash-test-vectors/hmac') +testLib('createHmac in crypto-browserify', require('../').createHmac) +testLib('create-hmac/browser', require('create-hmac/browser')) + +function testLib (name, createHmac) { + algorithms.forEach(function (alg) { + test(name + ' hmac(' + alg + ')', function (t) { + run(0) + function run (i) { + if (i >= vectors.length) { + return t.end() + } + var input = vectors[i] + var output = createHmac(alg, new Buffer(input.key, 'hex')) + .update(input.data, 'hex').digest() + + output = input.truncate ? output.slice(0, input.truncate) : output + output = output.toString('hex') + if (output !== input[alg]) { + t.equal(output, input[alg]) + } + setTimeout(run, 0, i + 1) + } + }) + + test('hmac(' + alg + ')', function (t) { + run(0) + function run (i) { + if (i >= vectors.length) { + return t.end() + } + var input = vectors[i] + var hmac = createHmac(alg, new Buffer(input.key, 'hex')) + + hmac.end(input.data, 'hex') + var output = hmac.read() + + output = input.truncate ? output.slice(0, input.truncate) : output + output = output.toString('hex') + if (output !== input[alg]) { + t.equal(output, input[alg]) + } + setTimeout(run, 0, i + 1) + } + }) + }) +} |