mirror of
https://github.com/Xahau/xahaud.git
synced 2025-11-19 10:05: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])
|
||||
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;
|
||||
|
||||
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