| '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)) | |
| } |