use supersha.

This commit is contained in:
Christopher Jeffrey 2016-07-16 14:32:06 -07:00
parent 1bae307285
commit 97f25f29f5
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD
2 changed files with 29 additions and 41 deletions

View File

@ -241,92 +241,79 @@ utils.isBase58 = function isBase58(obj) {
/** /**
* Hash with chosen algorithm. * Hash with chosen algorithm.
* @param {String} alg * @param {String} alg
* @param {Buffer|String} data * @param {Buffer} data
* @param {String?} enc - Any buffer-supported encoding.
* @returns {Buffer} * @returns {Buffer}
*/ */
utils.hash = function _hash(alg, data, enc) { utils.hash = function _hash(alg, data) {
if (!crypto) if (!crypto)
return new Buffer(hash[alg]().update(data, enc).digest()); return new Buffer(hash[alg]().update(data).digest());
return crypto.createHash(alg).update(data, enc).digest(); return crypto.createHash(alg).update(data).digest();
}; };
/** /**
* Hash with ripemd160. * Hash with ripemd160.
* @param {Buffer|String} data * @param {Buffer} data
* @param {String?} enc - Any buffer-supported encoding.
* @returns {Buffer} * @returns {Buffer}
*/ */
utils.ripemd160 = function ripemd160(data, enc) { utils.ripemd160 = function ripemd160(data) {
return utils.hash('ripemd160', data, enc); return utils.hash('ripemd160', data);
}; };
/** /**
* Hash with sha1. * Hash with sha1.
* @param {Buffer|String} data * @param {Buffer} data
* @param {String?} enc - Any buffer-supported encoding.
* @returns {Buffer} * @returns {Buffer}
*/ */
utils.sha1 = function sha1(data, enc) { utils.sha1 = function sha1(data) {
return utils.hash('sha1', data, enc); return utils.hash('sha1', data);
}; };
/** /**
* Hash with sha256. * Hash with sha256.
* @param {Buffer|String} data * @param {Buffer} data
* @param {String?} enc - Any buffer-supported encoding.
* @returns {Buffer} * @returns {Buffer}
*/ */
utils.sha256 = function sha256(data, enc) { utils.sha256 = function sha256(data) {
if (supersha) { if (supersha)
if (typeof data === 'string')
data = new Buffer(data, enc);
return supersha.sha256(data); return supersha.sha256(data);
} return utils.hash('sha256', data);
return utils.hash('sha256', data, enc);
}; };
/** /**
* Hash with sha256 and ripemd160 (OP_HASH160). * Hash with sha256 and ripemd160 (OP_HASH160).
* @param {Buffer|String} data * @param {Buffer} data
* @param {String?} enc - Any buffer-supported encoding.
* @returns {Buffer} * @returns {Buffer}
*/ */
utils.hash160 = function hash160(data, enc) { utils.hash160 = function hash160(data) {
return utils.ripemd160(utils.sha256(data, enc)); return utils.ripemd160(utils.sha256(data));
}; };
/** /**
* Hash with sha256 twice (OP_HASH256). * Hash with sha256 twice (OP_HASH256).
* @param {Buffer|String} data * @param {Buffer} data
* @param {String?} enc - Any buffer-supported encoding.
* @returns {Buffer} * @returns {Buffer}
*/ */
utils.hash256 = function hash256(data, enc) { utils.hash256 = function hash256(data) {
if (supersha) { if (supersha)
if (typeof data === 'string') return supersha.hash256(data);
data = new Buffer(data, enc); return utils.sha256(utils.sha256(data));
return supersha.dsha256(data);
}
return utils.sha256(utils.sha256(data, enc));
}; };
/** /**
* Create a sha256 checksum (common in bitcoin). * Create a sha256 checksum (common in bitcoin).
* @param {Buffer|String} data * @param {Buffer} data
* @param {String?} enc - Any buffer-supported encoding.
* @returns {Buffer} * @returns {Buffer}
*/ */
utils.checksum = function checksum(data, enc) { utils.checksum = function checksum(data) {
return utils.hash256(data, enc).slice(0, 4); return utils.hash256(data).slice(0, 4);
}; };
/** /**

View File

@ -24,9 +24,9 @@
], ],
"license": "MIT", "license": "MIT",
"bugs": { "bugs": {
"url": "https://github.com/indutny/bcoin/issues" "url": "https://github.com/bcoin-org/bcoin/issues"
}, },
"homepage": "https://github.com/indutny/bcoin", "homepage": "https://github.com/bcoin-org/bcoin",
"engines": { "engines": {
"node": ">= 0.10.0" "node": ">= 0.10.0"
}, },
@ -38,7 +38,8 @@
"leveldown": "git://github.com/chjj/leveldown.git#staging", "leveldown": "git://github.com/chjj/leveldown.git#staging",
"secp256k1": "3.1.0", "secp256k1": "3.1.0",
"socket.io": "1.4.8", "socket.io": "1.4.8",
"socket.io-client": "1.4.8" "socket.io-client": "1.4.8",
"supersha": "0.0.1"
}, },
"devDependencies": { "devDependencies": {
"browserify": "13.0.1", "browserify": "13.0.1",