refactor ripe160 binding
This commit is contained in:
parent
dc8d23dba5
commit
0f8ee57521
|
@ -1,7 +1,7 @@
|
|||
#! /bin/bash
|
||||
|
||||
cd vendor/
|
||||
cat browser-adapter.js crypto.js ripemd160.js jsbn.js jsbn2.js prng4.js util.js rng.js ec.js sec.js ecdsa.js eckey.js > vendor-bundle.js
|
||||
cat browser-adapter.js crypto-2.0.js crypto-3.1.js jsbn.js jsbn2.js prng4.js util.js rng.js ec.js sec.js ecdsa.js eckey.js > vendor-bundle.js
|
||||
mv vendor-bundle.js ../
|
||||
cd ../
|
||||
|
||||
|
|
|
@ -28,18 +28,4 @@ g)).finalize(c)}}});var b=e.algo={};return e}(Math);
|
|||
f+(((m|~n)^p)+c[2]):64>b?f+((m&p|n&~p)+c[3]):f+((m^(n|~p))+c[4]),f|=0,f=f<<k[b]|f>>>32-k[b],f=f+x|0,B=x,x=p,p=n<<10|n>>>22,n=m,m=f,f=C+g[e+j[b]]|0,f=16>b?f+((q^(r|~s))+h[0]):32>b?f+((q&s|r&~s)+h[1]):48>b?f+(((q|~r)^s)+h[2]):64>b?f+((q&r|~q&s)+h[3]):f+((q^r^s)+h[4]),f|=0,f=f<<l[b]|f>>>32-l[b],f=f+y|0,C=y,y=s,s=r<<10|r>>>22,r=q,q=f;f=a[1]+n+s|0;a[1]=a[2]+p+y|0;a[2]=a[3]+x+C|0;a[3]=a[4]+B+q|0;a[4]=a[0]+m+r|0;a[0]=f},_doFinalize:function(){var g=this._data,e=g.words,b=8*this._nDataBytes,a=8*g.sigBytes;
|
||||
e[a>>>5]|=128<<24-a%32;e[(a+64>>>9<<4)+14]=(b<<8|b>>>24)&16711935|(b<<24|b>>>8)&4278255360;g.sigBytes=4*(e.length+1);this._process();g=this._hash;e=g.words;for(b=0;5>b;b++)a=e[b],e[b]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;return g},clone:function(){var e=l.clone.call(this);e._hash=this._hash.clone();return e}});j.RIPEMD160=l._createHelper(k);j.HmacRIPEMD160=l._createHmacHelper(k)})(Math);
|
||||
|
||||
|
||||
module.exports.ripemd160 = function(bytes) {
|
||||
if (!Buffer.isBuffer(bytes)) {
|
||||
throw new Error('arg should be a buffer');
|
||||
}
|
||||
var w = new CryptoJS.lib.WordArray.init(Crypto.util.bytesToWords(bytes), bytes.length);
|
||||
var wordArray = CryptoJS.RIPEMD160(w);
|
||||
var words = wordArray.words;
|
||||
var answer = [];
|
||||
for (var b = 0; b < words.length * 32; b += 8) {
|
||||
answer.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);
|
||||
}
|
||||
return answer;
|
||||
};
|
||||
|
||||
module.exports.crypto31 = CryptoJS;
|
12
util/util.js
12
util/util.js
|
@ -14,15 +14,21 @@ if (!process.versions) {
|
|||
var sha256 = exports.sha256 = function (data) {
|
||||
return new Buffer(crypto.createHash('sha256').update(data).digest('binary'), 'binary');
|
||||
};
|
||||
|
||||
var ripe160 = exports.ripe160 = function (data) {
|
||||
if (!Buffer.isBuffer(data)) {
|
||||
throw new Error('arg should be a buffer');
|
||||
}
|
||||
|
||||
if (!process.versions) {
|
||||
var result = browser.ripemd160(data);
|
||||
return new Buffer(result, 'hex');
|
||||
|
||||
var w = new browser.crypto31.lib.WordArray.init(Crypto.util.bytesToWords(data), data.length);
|
||||
var wordArray = browser.crypto31.RIPEMD160(w);
|
||||
var words = wordArray.words;
|
||||
var answer = [];
|
||||
for (var b = 0; b < words.length * 32; b += 8) {
|
||||
answer.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);
|
||||
}
|
||||
return new Buffer(answer, 'hex');
|
||||
}
|
||||
return new Buffer(crypto.createHash('rmd160').update(data).digest('binary'), 'binary');
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue