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