| 'use strict' |
| var inherits = require('inherits') |
| var MD5 = require('md5.js') |
| var RIPEMD160 = require('ripemd160') |
| var sha = require('sha.js') |
| var Base = require('cipher-base') |
| |
| 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 (alg === 'md5') return new MD5() |
| if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160() |
| |
| return new Hash(sha(alg)) |
| } |