You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
// Crypto, crypto, where art thou crypto
|
|
|
|
var CryptoJS = require('crypto-js')
|
|
|
|
var crypto = require('crypto')
|
|
|
|
var convert = require('./convert')
|
|
|
|
|
|
|
|
function hash160(buffer) {
|
|
|
|
if (!Buffer.isBuffer(buffer)) buffer = new Buffer(buffer) // FIXME: transitionary
|
|
|
|
|
|
|
|
var step1 = sha256(buffer)
|
|
|
|
|
|
|
|
var step2a = convert.bytesToWordArray(step1)
|
|
|
|
var step2b = CryptoJS.RIPEMD160(step2a)
|
|
|
|
|
|
|
|
return new Buffer(convert.wordArrayToBytes(step2b))
|
|
|
|
}
|
|
|
|
|
|
|
|
function hash256(buffer) {
|
|
|
|
if (!Buffer.isBuffer(buffer)) buffer = new Buffer(buffer) // FIXME: transitionary
|
|
|
|
|
|
|
|
return sha256(sha256(buffer))
|
|
|
|
}
|
|
|
|
|
|
|
|
function sha1(buffer) {
|
|
|
|
if (!Buffer.isBuffer(buffer)) buffer = new Buffer(buffer) // FIXME: transitionary
|
|
|
|
|
|
|
|
return crypto.createHash('sha1').update(buffer).digest()
|
|
|
|
}
|
|
|
|
|
|
|
|
function sha256(buffer) {
|
|
|
|
if (!Buffer.isBuffer(buffer)) buffer = new Buffer(buffer) // FIXME: transitionary
|
|
|
|
|
|
|
|
return crypto.createHash('sha256').update(buffer).digest()
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
sha1: sha1,
|
|
|
|
sha256: sha256,
|
|
|
|
hash160: hash160,
|
|
|
|
hash256: hash256
|
|
|
|
}
|