core-lightning/hsmd/hsm_wire.csv
niftynei 90b393ca1a hsmd/db: backfill pubkey information so that psbts signing works
the way we use PSBTs to sign things requires that we have the
scriptpubkey available on the utxo so we can populate the witness-utxo
field with it.

this causes problems if we don't already have the scriptpubkey cached in
the database, as in *some* cases we require a round trip to the HSM to
populate them

to get over this hump, we backfill any and all missing scriptpubkey
information for the utxo's that we hold in our wallet.

this will allow us to clean up the NULL handling of missing
scriptpubkeys.
2020-07-29 13:13:46 +02:00

7.3 KiB

1# Clients should not give a bad request but not the HSM's decision to crash.
2msgtype,hsmstatus_client_bad_request,1000
3msgdata,hsmstatus_client_bad_request,id,node_id,
4msgdata,hsmstatus_client_bad_request,description,wirestring,
5msgdata,hsmstatus_client_bad_request,len,u16,
6msgdata,hsmstatus_client_bad_request,msg,u8,len
7#include <bitcoin/chainparams.h>
8# Start the HSM.
9msgtype,hsm_init,11
10msgdata,hsm_init,bip32_key_version,bip32_key_version,
11msgdata,hsm_init,chainparams,chainparams,
12msgdata,hsm_init,hsm_encryption_key,?secret,
13msgdata,hsm_init,dev_force_privkey,?privkey,
14msgdata,hsm_init,dev_force_bip32_seed,?secret,
15msgdata,hsm_init,dev_force_channel_secrets,?secrets,
16msgdata,hsm_init,dev_force_channel_secrets_shaseed,?sha256,
17#include <common/bip32.h>
18msgtype,hsm_init_reply,111
19msgdata,hsm_init_reply,node_id,node_id,
20msgdata,hsm_init_reply,bip32,ext_key,
21# Get a new HSM FD, with the specified capabilities
22msgtype,hsm_client_hsmfd,9
23# Which identity to use for requests
24msgdata,hsm_client_hsmfd,id,node_id,
25# Database id for this client, if any.
26msgdata,hsm_client_hsmfd,dbid,u64,
27msgdata,hsm_client_hsmfd,capabilities,u64,
28# No content, just an fd.
29msgtype,hsm_client_hsmfd_reply,109
30#include <common/derive_basepoints.h>
31# Get the basepoints and funding key for this specific channel.
32msgtype,hsm_get_channel_basepoints,10
33msgdata,hsm_get_channel_basepoints,peerid,node_id,
34msgdata,hsm_get_channel_basepoints,dbid,u64,
35msgtype,hsm_get_channel_basepoints_reply,110
36msgdata,hsm_get_channel_basepoints_reply,basepoints,basepoints,
37msgdata,hsm_get_channel_basepoints_reply,funding_pubkey,pubkey,
38# Return signature for a funding tx.
39#include <common/utxo.h>
40# Master asks the HSM to sign a node_announcement
41msgtype,hsm_node_announcement_sig_req,6
42msgdata,hsm_node_announcement_sig_req,annlen,u16,
43msgdata,hsm_node_announcement_sig_req,announcement,u8,annlen
44msgtype,hsm_node_announcement_sig_reply,106
45msgdata,hsm_node_announcement_sig_reply,signature,secp256k1_ecdsa_signature,
46# Sign a withdrawal request
47#include <bitcoin/psbt.h>
48msgtype,hsm_sign_withdrawal,7
49msgdata,hsm_sign_withdrawal,num_inputs,u16,
50msgdata,hsm_sign_withdrawal,inputs,utxo,num_inputs
51msgdata,hsm_sign_withdrawal,psbt,wally_psbt,
52msgtype,hsm_sign_withdrawal_reply,107
53msgdata,hsm_sign_withdrawal_reply,psbt,wally_psbt,
54# Sign an invoice
55msgtype,hsm_sign_invoice,8
56msgdata,hsm_sign_invoice,len,u16,
57msgdata,hsm_sign_invoice,u5bytes,u8,len
58msgdata,hsm_sign_invoice,hrplen,u16,
59msgdata,hsm_sign_invoice,hrp,u8,hrplen
60msgtype,hsm_sign_invoice_reply,108
61msgdata,hsm_sign_invoice_reply,sig,secp256k1_ecdsa_recoverable_signature,
62# Give me ECDH(node-id-secret,point)
63msgtype,hsm_ecdh_req,1
64msgdata,hsm_ecdh_req,point,pubkey,
65msgtype,hsm_ecdh_resp,100
66msgdata,hsm_ecdh_resp,ss,secret,
67msgtype,hsm_cannouncement_sig_req,2
68msgdata,hsm_cannouncement_sig_req,calen,u16,
69msgdata,hsm_cannouncement_sig_req,ca,u8,calen
70msgtype,hsm_cannouncement_sig_reply,102
71msgdata,hsm_cannouncement_sig_reply,node_signature,secp256k1_ecdsa_signature,
72msgdata,hsm_cannouncement_sig_reply,bitcoin_signature,secp256k1_ecdsa_signature,
73msgtype,hsm_cupdate_sig_req,3
74msgdata,hsm_cupdate_sig_req,culen,u16,
75msgdata,hsm_cupdate_sig_req,cu,u8,culen
76msgtype,hsm_cupdate_sig_reply,103
77msgdata,hsm_cupdate_sig_reply,culen,u16,
78msgdata,hsm_cupdate_sig_reply,cu,u8,culen
79# Master asks HSM to sign a commitment transaction.
80msgtype,hsm_sign_commitment_tx,5
81msgdata,hsm_sign_commitment_tx,peer_id,node_id,
82msgdata,hsm_sign_commitment_tx,channel_dbid,u64,
83msgdata,hsm_sign_commitment_tx,tx,bitcoin_tx,
84msgdata,hsm_sign_commitment_tx,remote_funding_key,pubkey,
85msgtype,hsm_sign_commitment_tx_reply,105
86msgdata,hsm_sign_commitment_tx_reply,sig,bitcoin_signature,
87# Onchaind asks HSM to sign a spend to-us. Four variants, since each set
88# of keys is derived differently...
89# FIXME: Have master tell hsmd the keyindex, so it can validate output!
90msgtype,hsm_sign_delayed_payment_to_us,12
91msgdata,hsm_sign_delayed_payment_to_us,commit_num,u64,
92msgdata,hsm_sign_delayed_payment_to_us,tx,bitcoin_tx,
93msgdata,hsm_sign_delayed_payment_to_us,wscript_len,u16,
94msgdata,hsm_sign_delayed_payment_to_us,wscript,u8,wscript_len
95msgtype,hsm_sign_remote_htlc_to_us,13
96msgdata,hsm_sign_remote_htlc_to_us,remote_per_commitment_point,pubkey,
97msgdata,hsm_sign_remote_htlc_to_us,tx,bitcoin_tx,
98msgdata,hsm_sign_remote_htlc_to_us,wscript_len,u16,
99msgdata,hsm_sign_remote_htlc_to_us,wscript,u8,wscript_len
100msgtype,hsm_sign_penalty_to_us,14
101msgdata,hsm_sign_penalty_to_us,revocation_secret,secret,
102msgdata,hsm_sign_penalty_to_us,tx,bitcoin_tx,
103msgdata,hsm_sign_penalty_to_us,wscript_len,u16,
104msgdata,hsm_sign_penalty_to_us,wscript,u8,wscript_len
105# Onchaind asks HSM to sign a local HTLC success or HTLC timeout tx.
106msgtype,hsm_sign_local_htlc_tx,16
107msgdata,hsm_sign_local_htlc_tx,commit_num,u64,
108msgdata,hsm_sign_local_htlc_tx,tx,bitcoin_tx,
109msgdata,hsm_sign_local_htlc_tx,wscript_len,u16,
110msgdata,hsm_sign_local_htlc_tx,wscript,u8,wscript_len
111# Openingd/channeld asks HSM to sign the other sides' commitment tx.
112msgtype,hsm_sign_remote_commitment_tx,19
113msgdata,hsm_sign_remote_commitment_tx,tx,bitcoin_tx,
114msgdata,hsm_sign_remote_commitment_tx,remote_funding_key,pubkey,
115msgdata,hsm_sign_remote_commitment_tx,remote_per_commit,pubkey,
116msgdata,hsm_sign_remote_commitment_tx,option_static_remotekey,bool,
117# channeld asks HSM to sign remote HTLC tx.
118msgtype,hsm_sign_remote_htlc_tx,20
119msgdata,hsm_sign_remote_htlc_tx,tx,bitcoin_tx,
120msgdata,hsm_sign_remote_htlc_tx,len,u16,
121msgdata,hsm_sign_remote_htlc_tx,wscript,u8,len
122msgdata,hsm_sign_remote_htlc_tx,remote_per_commit_point,pubkey,
123# closingd asks HSM to sign mutual close tx.
124msgtype,hsm_sign_mutual_close_tx,21
125msgdata,hsm_sign_mutual_close_tx,tx,bitcoin_tx,
126msgdata,hsm_sign_mutual_close_tx,remote_funding_key,pubkey,
127# Reply for all the above requests.
128msgtype,hsm_sign_tx_reply,112
129msgdata,hsm_sign_tx_reply,sig,bitcoin_signature,
130# Openingd/channeld/onchaind asks for Nth per_commitment_point, if > 2, gets N-2 secret.
131msgtype,hsm_get_per_commitment_point,18
132msgdata,hsm_get_per_commitment_point,n,u64,
133msgtype,hsm_get_per_commitment_point_reply,118
134msgdata,hsm_get_per_commitment_point_reply,per_commitment_point,pubkey,
135msgdata,hsm_get_per_commitment_point_reply,old_commitment_secret,?secret,
136# master -> hsmd: do you have a memleak?
137msgtype,hsm_dev_memleak,33
138msgtype,hsm_dev_memleak_reply,133
139msgdata,hsm_dev_memleak_reply,leak,bool,
140# channeld asks to check if claimed future commitment_secret is correct.
141msgtype,hsm_check_future_secret,22
142msgdata,hsm_check_future_secret,n,u64,
143msgdata,hsm_check_future_secret,commitment_secret,secret,
144msgtype,hsm_check_future_secret_reply,122
145msgdata,hsm_check_future_secret_reply,correct,bool,
146# lightningd asks us to sign a string.
147msgtype,hsm_sign_message,23
148msgdata,hsm_sign_message,len,u16,
149msgdata,hsm_sign_message,msg,u8,len
150msgtype,hsm_sign_message_reply,123
151msgdata,hsm_sign_message_reply,sig,secp256k1_ecdsa_recoverable_signature,
152# lightningd needs to get a scriptPubkey for a utxo with closeinfo
153msgtype,hsm_get_output_scriptpubkey,24
154msgdata,hsm_get_output_scriptpubkey,channel_id,u64,
155msgdata,hsm_get_output_scriptpubkey,peer_id,node_id,
156msgdata,hsm_get_output_scriptpubkey,commitment_point,?pubkey,
157msgtype,hsm_get_output_scriptpubkey_reply,124
158msgdata,hsm_get_output_scriptpubkey_reply,script_len,u16,
159msgdata,hsm_get_output_scriptpubkey_reply,script,u8,script_len