diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-05-24 15:10:37 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-05-24 15:11:17 +0200 |
commit | 7a3df06eb573d36142bd1a8e03c5ce8752d300b3 (patch) | |
tree | 70bfaea8884c374876f607774850a3a51c0cb381 /node_modules/create-hmac/browser.js | |
parent | aca1143cb9eed16cf37f04e475e4257418dd18ac (diff) |
fix build issues and add typedoc
Diffstat (limited to 'node_modules/create-hmac/browser.js')
-rw-r--r-- | node_modules/create-hmac/browser.js | 66 |
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) } |