aboutsummaryrefslogtreecommitdiff
path: root/node_modules/create-hmac/browser.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-24 15:10:37 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-24 15:11:17 +0200
commit7a3df06eb573d36142bd1a8e03c5ce8752d300b3 (patch)
tree70bfaea8884c374876f607774850a3a51c0cb381 /node_modules/create-hmac/browser.js
parentaca1143cb9eed16cf37f04e475e4257418dd18ac (diff)
fix build issues and add typedoc
Diffstat (limited to 'node_modules/create-hmac/browser.js')
-rw-r--r--node_modules/create-hmac/browser.js66
1 files changed, 30 insertions, 36 deletions
diff --git a/node_modules/create-hmac/browser.js b/node_modules/create-hmac/browser.js
index b610781b2..a5c9b61ea 100644
--- a/node_modules/create-hmac/browser.js
+++ b/node_modules/create-hmac/browser.js
@@ -1,68 +1,62 @@
-'use strict';
-var createHash = require('create-hash/browser');
+'use strict'
var inherits = require('inherits')
+var Legacy = require('./legacy')
+var Base = require('cipher-base')
+var Buffer = require('safe-buffer').Buffer
+var md5 = require('create-hash/md5')
+var RIPEMD160 = require('ripemd160')
-var Transform = require('stream').Transform
+var sha = require('sha.js')
-var ZEROS = new Buffer(128)
-ZEROS.fill(0)
+var ZEROS = Buffer.alloc(128)
-function Hmac(alg, key) {
- Transform.call(this)
- alg = alg.toLowerCase()
+function Hmac (alg, key) {
+ Base.call(this, 'digest')
if (typeof key === 'string') {
- key = new Buffer(key)
+ key = Buffer.from(key)
}
var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64
this._alg = alg
this._key = key
-
if (key.length > blocksize) {
- key = createHash(alg).update(key).digest()
-
+ var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
+ key = hash.update(key).digest()
} else if (key.length < blocksize) {
key = Buffer.concat([key, ZEROS], blocksize)
}
- var ipad = this._ipad = new Buffer(blocksize)
- var opad = this._opad = new Buffer(blocksize)
+ var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
+ var opad = this._opad = Buffer.allocUnsafe(blocksize)
for (var i = 0; i < blocksize; i++) {
ipad[i] = key[i] ^ 0x36
opad[i] = key[i] ^ 0x5C
}
-
- this._hash = createHash(alg).update(ipad)
+ this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
+ this._hash.update(ipad)
}
-inherits(Hmac, Transform)
+inherits(Hmac, Base)
-Hmac.prototype.update = function (data, enc) {
- this._hash.update(data, enc)
-
- return this
-}
-
-Hmac.prototype._transform = function (data, _, next) {
+Hmac.prototype._update = function (data) {
this._hash.update(data)
-
- next()
}
-Hmac.prototype._flush = function (next) {
- this.push(this.digest())
-
- next()
-}
-
-Hmac.prototype.digest = function (enc) {
+Hmac.prototype._final = function () {
var h = this._hash.digest()
-
- return createHash(this._alg).update(this._opad).update(h).digest(enc)
+ var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)
+ return hash.update(this._opad).update(h).digest()
}
-module.exports = function createHmac(alg, key) {
+module.exports = function createHmac (alg, key) {
+ alg = alg.toLowerCase()
+ if (alg === 'rmd160' || alg === 'ripemd160') {
+ return new Hmac('rmd160', key)
+ }
+ if (alg === 'md5') {
+ return new Legacy(md5, key)
+ }
return new Hmac(alg, key)
}