Sha256: d8709d64292f70517c93e894171f72c021bfaa21e8e7d89df4ce0defa8a064ea

Contents?: true

Size: 1.43 KB

Versions: 8

Compression:

Stored size: 1.43 KB

Contents

var test = require('tape')

var algorithms = ['sha1', 'sha224','sha256', 'sha384', 'sha512', 'SHA512', 'md5', 'rmd160']
var formats = [undefined, 'base64', 'hex', 'binary']

var vectors = require('hash-test-vectors/hmac')
var createHmac = require('./browser')
algorithms.forEach(function (alg) {
  vectors.forEach(function (input) {
    var key = new Buffer(input.key, 'hex')
    var inputBuffer = new Buffer(input.data, 'hex')

    formats.forEach(function (format) {
      test('hmac(' + alg + ') w/ ' + input.data.slice(0, 6)  + '... as ' + format, function (t) {
        var hmac = createHmac(alg, key)

        var formattedInput = format ? inputBuffer.toString(format) : inputBuffer
        hmac.update(formattedInput, format)

        var formattedOutput = hmac.digest(format)
        var output = new Buffer(formattedOutput, format)

        var truncated = input.truncate ? output.slice(0, input.truncate) : output
        t.equal(truncated.toString('hex'), input[alg.toLowerCase()])
        t.end()
      })
    })
  })

  vectors.forEach(function (input) {
    test('hmac(' + alg + ') as stream w/ ' + input.data.slice(0, 6) + '...', function (t) {
      var hmac = createHmac(alg, new Buffer(input.key, 'hex'))
      hmac.end(input.data, 'hex')

      var output = hmac.read()
      var truncated = input.truncate ? output.slice(0, input.truncate) : output
      t.equal(truncated.toString('hex'), input[alg.toLowerCase()])
      t.end()
    })
  })
})

Version data entries

8 entries across 8 versions & 3 rubygems

Version Path
lanes-0.8.0 node_modules/create-hmac/test.js
minimum_viable_product-0.0.11 test/dummy/node_modules/create-hmac/test.js
brwy_rails-0.0.6 test/dummy/node_modules/create-hmac/test.js
brwy_rails-0.0.5 test/dummy/node_modules/create-hmac/test.js
brwy_rails-0.0.4 test/dummy/node_modules/create-hmac/test.js
brwy_rails-0.0.3 test/dummy/node_modules/create-hmac/test.js
brwy_rails-0.0.2 test/dummy/node_modules/create-hmac/test.js
brwy_rails-0.0.1 test/dummy/node_modules/create-hmac/test.js