hsmd: refactor hsmd_init

Add preapprove_check capabilities:
WIRE_HSMD_PREAPPROVE_INCOICE_CHECK and
WIRE_HSMD_PREAPPROVE_KEYSEND_CHECK to the capabilities array
if dev_no_preapprove_check is not set.
Do not assume those occupy the last two slots in the array.

Changelog-None

Signed-off-by: Lagrang3 <lagrang3@protonmail.com>
This commit is contained in:
Lagrang3
2025-04-28 11:50:57 +01:00
committed by Rusty Russell
parent 50cdf05a4a
commit 7343502c69

View File

@@ -2348,10 +2348,8 @@ u8 *hsmd_init(struct secret hsm_secret, const u64 hsmd_version,
WIRE_HSMD_REVOKE_COMMITMENT_TX,
WIRE_HSMD_SIGN_BOLT12_2,
WIRE_HSMD_BIP137_SIGN_MESSAGE,
WIRE_HSMD_PREAPPROVE_INVOICE_CHECK,
WIRE_HSMD_PREAPPROVE_KEYSEND_CHECK,
};
const u32 *caps;
u32 *caps;
/*~ Don't swap this. */
sodium_mlock(secretstuff.hsm_secret.data,
@@ -2474,14 +2472,11 @@ u8 *hsmd_init(struct secret hsm_secret, const u64 hsmd_version,
"derived secrets", strlen("derived secrets"));
/* Capabilities arg needs to be a tal array */
if (dev_no_preapprove_check) {
/* Skip preapprove capabilities */
caps = tal_dup_arr(tmpctx, u32,
capabilities, ARRAY_SIZE(capabilities) - 2,
0);
} else {
caps = tal_dup_arr(tmpctx, u32,
capabilities, ARRAY_SIZE(capabilities), 0);
caps =
tal_dup_arr(tmpctx, u32, capabilities, ARRAY_SIZE(capabilities), 0);
if (!dev_no_preapprove_check) {
tal_arr_expand(&caps, WIRE_HSMD_PREAPPROVE_INVOICE_CHECK);
tal_arr_expand(&caps, WIRE_HSMD_PREAPPROVE_KEYSEND_CHECK);
}
/*~ Note: marshalling a bip32 tree only marshals the public side,