Cleaning up utils.
This commit is contained in:
parent
a107a7c3e2
commit
735e492f8c
@ -1,53 +1,22 @@
|
||||
'use strict';
|
||||
|
||||
// See: https://github.com/dominictarr/hmac
|
||||
//
|
||||
// The only difference between this and the original is this uses Uint8Array instead of Buffer
|
||||
|
||||
|
||||
// @TODO: Use the hmac in hash.js instead
|
||||
var hash = require('hash.js');
|
||||
|
||||
var convert = require('./convert.js');
|
||||
|
||||
var zeroBuffer = new Uint8Array(128)
|
||||
// @TODO: Make this use create-hmac in node
|
||||
|
||||
function Hmac (createHash, blocksize, key) {
|
||||
if(!(this instanceof Hmac)) { throw new Error('missing new'); }
|
||||
|
||||
this._opad = opad
|
||||
this._createHash = createHash
|
||||
|
||||
if(blocksize !== 128 && blocksize !== 64) {
|
||||
throw new Error('blocksize must be either 64 for or 128 , but was:' + blocksize);
|
||||
}
|
||||
|
||||
key = this._key = convert.arrayify(key);
|
||||
|
||||
if(key.length > blocksize) {
|
||||
key = this._createHash().update(key).digest()
|
||||
} else if(key.length < blocksize) {
|
||||
key = convert.concat([key, zeroBuffer], blocksize)
|
||||
}
|
||||
|
||||
var ipad = this._ipad = new Uint8Array(blocksize)
|
||||
var opad = this._opad = new Uint8Array(blocksize)
|
||||
|
||||
for(var i = 0; i < blocksize; i++) {
|
||||
ipad[i] = key[i] ^ 0x36
|
||||
opad[i] = key[i] ^ 0x5C
|
||||
}
|
||||
|
||||
this._hash = this._createHash().update(ipad)
|
||||
function createSha256Hmac(key) {
|
||||
if (!key.buffer) { key = convert.arrayify(key); }
|
||||
return new hash.hmac(hash.sha256, key);
|
||||
}
|
||||
|
||||
Hmac.prototype.update = function (data, enc) {
|
||||
this._hash.update(data, enc)
|
||||
return this;
|
||||
function createSha512Hmac(key) {
|
||||
if (!key.buffer) { key = convert.arrayify(key); }
|
||||
return new hash.hmac(hash.sha512, key);
|
||||
}
|
||||
|
||||
Hmac.prototype.digest = function (enc) {
|
||||
var h = this._hash.digest()
|
||||
return this._createHash().update(this._opad).update(h).digest(enc)
|
||||
}
|
||||
|
||||
module.exports = Hmac
|
||||
module.exports = {
|
||||
createSha256Hmac: createSha256Hmac,
|
||||
createSha512Hmac: createSha512Hmac,
|
||||
};
|
||||
|
@ -7,9 +7,11 @@ var address = require('./address.js');
|
||||
var bigNumber = require('./bignumber.js');
|
||||
var contractAddress = require('./contract-address.js');
|
||||
var convert = require('./convert.js');
|
||||
var hmac = require('./hmac.js');
|
||||
var keccak256 = require('./keccak256.js');
|
||||
var sha256 = require('./sha2.js').sha256;
|
||||
var randomBytes = require('./random-bytes.js');
|
||||
var pbkdf2 = require('./pbkdf2.js');
|
||||
var properties = require('./properties.js');
|
||||
var rlp = require('./rlp.js');
|
||||
var utf8 = require('./utf8.js');
|
||||
@ -61,5 +63,8 @@ module.exports = {
|
||||
keccak256: keccak256,
|
||||
sha256: sha256,
|
||||
|
||||
hmac: hmac,
|
||||
pbkdf2: pbkdf2,
|
||||
|
||||
randomBytes: randomBytes,
|
||||
}
|
||||
|
@ -10,7 +10,6 @@
|
||||
"bn.js": "^4.4.0",
|
||||
"hash.js": "^1.0.0",
|
||||
"js-sha3": "0.5.7",
|
||||
"rlp": "2.0.0",
|
||||
"xmlhttprequest": "1.8.0"
|
||||
},
|
||||
"browser": {
|
||||
|
Loading…
Reference in New Issue
Block a user