hsmtool: remove threshold arg.

It really has to be 0, since it's the complete secret.  And we didn't handle
it well, (`a` would be treated as 0, for example!).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2023-08-01 10:59:59 +09:30
parent 4dcd712d6e
commit 5900742b3a
2 changed files with 6 additions and 15 deletions

View File

@@ -1359,7 +1359,7 @@ def test_recover(node_factory, bitcoind):
out = subprocess.check_output(cmd_line + ["leet", "0"]).decode('utf-8') out = subprocess.check_output(cmd_line + ["leet", "0"]).decode('utf-8')
assert out == "ms10leetsllhdmn9m42vcsamx24zrxgs3qrl7ahwvhw4fnzrhve25gvezzyqqtum9pgv99ycma\n" assert out == "ms10leetsllhdmn9m42vcsamx24zrxgs3qrl7ahwvhw4fnzrhve25gvezzyqqtum9pgv99ycma\n"
# Check bad ids, threshold. # Check bad ids.
out = subprocess.run(cmd_line + ["lee", "0"], stderr=subprocess.PIPE, timeout=TIMEOUT) out = subprocess.run(cmd_line + ["lee", "0"], stderr=subprocess.PIPE, timeout=TIMEOUT)
assert 'Invalid id: must be 4 characters' in out.stderr.decode('utf-8') assert 'Invalid id: must be 4 characters' in out.stderr.decode('utf-8')
assert out.returncode == 2 assert out.returncode == 2
@@ -1377,14 +1377,6 @@ def test_recover(node_factory, bitcoind):
assert 'Invalid id: must be valid bech32 string' in out.stderr.decode('utf-8') assert 'Invalid id: must be valid bech32 string' in out.stderr.decode('utf-8')
assert out.returncode == 2 assert out.returncode == 2
out = subprocess.run(cmd_line + ["leet", "1"], stderr=subprocess.PIPE, timeout=TIMEOUT)
assert 'Invalid threshold 1' in out.stderr.decode('utf-8')
assert out.returncode == 2
out = subprocess.run(cmd_line + ["leet", "99"], stderr=subprocess.PIPE, timeout=TIMEOUT)
assert 'Invalid threshold 99' in out.stderr.decode('utf-8')
assert out.returncode == 2
basedir = l1.daemon.opts.get("lightning-dir") basedir = l1.daemon.opts.get("lightning-dir")
with open(os.path.join(basedir, TEST_NETWORK, 'hsm_secret'), 'rb') as f: with open(os.path.join(basedir, TEST_NETWORK, 'hsm_secret'), 'rb') as f:
buff = f.read() buff = f.read()

View File

@@ -45,7 +45,7 @@ static void show_usage(const char *progname)
printf(" - checkhsm <path/to/new/hsm_secret>\n"); printf(" - checkhsm <path/to/new/hsm_secret>\n");
printf(" - dumponchaindescriptors <path/to/hsm_secret> [network]\n"); printf(" - dumponchaindescriptors <path/to/hsm_secret> [network]\n");
printf(" - makerune <path/to/hsm_secret>\n"); printf(" - makerune <path/to/hsm_secret>\n");
printf(" - getcodexsecret <path/to/hsm_secret> <id> <threshold>\n"); printf(" - getcodexsecret <path/to/hsm_secret> <id>\n");
exit(0); exit(0);
} }
@@ -247,15 +247,14 @@ static int decrypt_hsm(const char *hsm_secret_path)
} }
static int make_codexsecret(const char *hsm_secret_path, static int make_codexsecret(const char *hsm_secret_path,
const char *id, const char *id)
const u32 threshold)
{ {
struct secret hsm_secret; struct secret hsm_secret;
char *bip93; char *bip93;
const char *err; const char *err;
get_hsm_secret(&hsm_secret, hsm_secret_path); get_hsm_secret(&hsm_secret, hsm_secret_path);
err = codex32_secret_encode(tmpctx, id, threshold, hsm_secret.data, 32, &bip93); err = codex32_secret_encode(tmpctx, id, 0, hsm_secret.data, 32, &bip93);
if (err) if (err)
errx(ERROR_USAGE, "%s", err); errx(ERROR_USAGE, "%s", err);
@@ -765,9 +764,9 @@ int main(int argc, char *argv[])
} }
if(streq(method, "getcodexsecret")) { if(streq(method, "getcodexsecret")) {
if (argc < 3) if (argc < 2)
show_usage(argv[0]); show_usage(argv[0]);
return make_codexsecret(argv[2], argv[3], atol(argv[4])); return make_codexsecret(argv[2], argv[3]);
} }
show_usage(argv[0]); show_usage(argv[0]);
} }