aboutsummaryrefslogtreecommitdiff
path: root/node_modules/create-hash/browser.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/create-hash/browser.js')
-rw-r--r--node_modules/create-hash/browser.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/node_modules/create-hash/browser.js b/node_modules/create-hash/browser.js
new file mode 100644
index 000000000..e9add1e94
--- /dev/null
+++ b/node_modules/create-hash/browser.js
@@ -0,0 +1,52 @@
+'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))
+}