You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							30 lines
						
					
					
						
							625 B
						
					
					
				
			
		
		
	
	
							30 lines
						
					
					
						
							625 B
						
					
					
				'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)) | 
						|
}
 | 
						|
 |