Sha256: bb3053989ce5aee037b6ec7c5842d02d2277557d9818bb110bd7799fb2a173e8

Contents?: true

Size: 1.01 KB

Versions: 8

Compression:

Stored size: 1.01 KB

Contents

'use strict';
var inherits = require('inherits')
var md5 = require('./md5')
var rmd160 = require('ripemd160')
var sha = require('sha.js')

var Base = require('cipher-base')

function HashNoConstructor(hash) {
  Base.call(this, 'digest')

  this._hash = hash
  this.buffers = []
}

inherits(HashNoConstructor, Base)

HashNoConstructor.prototype._update = function (data) {
  this.buffers.push(data)
}

HashNoConstructor.prototype._final = function () {
  var buf = Buffer.concat(this.buffers)
  var r = this._hash(buf)
  this.buffers = null

  return r
}

function Hash(hash) {
  Base.call(this, 'digest')

  this._hash = hash
}

inherits(Hash, Base)

Hash.prototype._update = function (data) {
  this._hash.update(data)
}

Hash.prototype._final = function () {
  return this._hash.digest()
}

module.exports = function createHash (alg) {
  alg = alg.toLowerCase()
  if ('md5' === alg) return new HashNoConstructor(md5)
  if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)

  return new Hash(sha(alg))
}

Version data entries

8 entries across 8 versions & 3 rubygems

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