mirror of
https://github.com/OneKeyHQ/bip39.git
synced 2026-04-17 16:02:16 +00:00
Root key validity is checked before deriving
This commit is contained in:
@@ -18964,6 +18964,10 @@ window.Entropy = new (function() {
|
||||
}
|
||||
|
||||
function calcBip32ExtendedKey(path) {
|
||||
// Check there's a root key to derive from
|
||||
if (!bip32RootKey) {
|
||||
return bip32RootKey;
|
||||
}
|
||||
var extendedKey = bip32RootKey;
|
||||
// Derive the key from the path
|
||||
var pathBits = path.split("/");
|
||||
@@ -19098,6 +19102,10 @@ window.Entropy = new (function() {
|
||||
}
|
||||
}
|
||||
}
|
||||
// Check root key exists or else derivation path is useless!
|
||||
if (!bip32RootKey) {
|
||||
return "No root key";
|
||||
}
|
||||
// Check no hardened derivation path when using xpub keys
|
||||
var hardened = path.indexOf("'") > -1;
|
||||
var isXpubkey = !("privKey" in bip32RootKey);
|
||||
|
||||
@@ -324,6 +324,10 @@
|
||||
}
|
||||
|
||||
function calcBip32ExtendedKey(path) {
|
||||
// Check there's a root key to derive from
|
||||
if (!bip32RootKey) {
|
||||
return bip32RootKey;
|
||||
}
|
||||
var extendedKey = bip32RootKey;
|
||||
// Derive the key from the path
|
||||
var pathBits = path.split("/");
|
||||
@@ -458,6 +462,10 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
// Check root key exists or else derivation path is useless!
|
||||
if (!bip32RootKey) {
|
||||
return "No root key";
|
||||
}
|
||||
// Check no hardened derivation path when using xpub keys
|
||||
var hardened = path.indexOf("'") > -1;
|
||||
var isXpubkey = !("privKey" in bip32RootKey);
|
||||
|
||||
24
tests.js
24
tests.js
@@ -3241,6 +3241,30 @@ page.open(url, function(status) {
|
||||
});
|
||||
},
|
||||
|
||||
// github issue 39
|
||||
// no root key shows feedback
|
||||
function() {
|
||||
page.open(url, function(status) {
|
||||
// click the bip32 tab on fresh page
|
||||
page.evaluate(function() {
|
||||
$("#bip32-tab a").click();
|
||||
});
|
||||
waitForFeedback(function() {
|
||||
// Check feedback is correct
|
||||
var expected = "No root key";
|
||||
var actual = page.evaluate(function() {
|
||||
return $(".feedback").text();
|
||||
});
|
||||
if (actual != expected) {
|
||||
console.log("Blank root key not detected");
|
||||
console.log("Expected: " + expected);
|
||||
console.log("Actual: " + actual);
|
||||
fail();
|
||||
}
|
||||
next();
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
// If you wish to add more tests, do so here...
|
||||
|
||||
|
||||
Reference in New Issue
Block a user