mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-20 20:25:48 +00:00
JS: Fix erroneous base58 decoding and add tests for issue.
This commit is contained in:
@@ -130,7 +130,11 @@ Base.decode_check = function (version, input, alphabet) {
|
|||||||
if (computed[i] !== checksum[i])
|
if (computed[i] !== checksum[i])
|
||||||
return NaN;
|
return NaN;
|
||||||
|
|
||||||
return new BigInteger(buffer.slice(1, -4));
|
// We'll use the version byte to add a leading zero, this ensures JSBN doesn't
|
||||||
|
// intrepret the value as a negative number
|
||||||
|
buffer[0] = 0;
|
||||||
|
|
||||||
|
return new BigInteger(buffer.slice(0, -4), 256);
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.Base = Base;
|
exports.Base = Base;
|
||||||
|
|||||||
20
test/base58-test.js
Normal file
20
test/base58-test.js
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
var buster = require("buster");
|
||||||
|
|
||||||
|
var Seed = require("../src/js/seed").Seed;
|
||||||
|
|
||||||
|
var config = require('../src/js/config').load(require('./config'));
|
||||||
|
|
||||||
|
buster.testCase("Base58", {
|
||||||
|
"Seed" : {
|
||||||
|
"saESc82Vun7Ta5EJRzGJbrXb5HNYk" : function () {
|
||||||
|
var seed = Seed.from_json("saESc82Vun7Ta5EJRzGJbrXb5HNYk");
|
||||||
|
buster.assert.equals(seed.to_hex(), "FF1CF838D02B2CF7B45BAC27F5F24F4F");
|
||||||
|
},
|
||||||
|
"sp6iDHnmiPN7tQFHm5sCW59ax3hfE" : function () {
|
||||||
|
var seed = Seed.from_json("sp6iDHnmiPN7tQFHm5sCW59ax3hfE");
|
||||||
|
buster.assert.equals(seed.to_hex(), "00AD8DA764C3C8AF5F9B8D51C94B9E49");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// vim:sw=2:sts=2:ts=8:et
|
||||||
24
test/sign-test.js
Normal file
24
test/sign-test.js
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
var buster = require("buster");
|
||||||
|
|
||||||
|
var Seed = require("../src/js/seed").Seed;
|
||||||
|
|
||||||
|
var config = require('../src/js/config').load(require('./config'));
|
||||||
|
|
||||||
|
buster.testCase("Signing", {
|
||||||
|
"Keys" : {
|
||||||
|
"SigningPubKey 1 (ripple-client issue #245)" : function () {
|
||||||
|
var seed = Seed.from_json("saESc82Vun7Ta5EJRzGJbrXb5HNYk");
|
||||||
|
var key = seed.get_key("rBZ4j6MsoctipM6GEyHSjQKzXG3yambDnZ");
|
||||||
|
var pub = key.to_hex_pub();
|
||||||
|
buster.assert.equals(pub, "0396941B22791A448E5877A44CE98434DB217D6FB97D63F0DAD23BE49ED45173C9");
|
||||||
|
},
|
||||||
|
"SigningPubKey 2 (master seed)" : function () {
|
||||||
|
var seed = Seed.from_json("snoPBrXtMeMyMHUVTgbuqAfg1SUTb");
|
||||||
|
var key = seed.get_key("rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh");
|
||||||
|
var pub = key.to_hex_pub();
|
||||||
|
buster.assert.equals(pub, "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// vim:sw=2:sts=2:ts=8:et
|
||||||
Reference in New Issue
Block a user