core-lightning/hsmd/hsmd_wire.csv
Rusty Russell 4e39b3ff3d hsmd: don't use point32 for bolt12, but use pubkeys (though still always 02)
This is the one place where we hand point32 over the wire internally, so
remove it.

This is also our first hsm version change!

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2022-10-26 11:29:06 +10:30

12 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,hsmd_init,11
10msgdata,hsmd_init,bip32_key_version,bip32_key_version,
11msgdata,hsmd_init,chainparams,chainparams,
12msgdata,hsmd_init,hsm_encryption_key,?secret,
13msgdata,hsmd_init,dev_force_privkey,?privkey,
14msgdata,hsmd_init,dev_force_bip32_seed,?secret,
15msgdata,hsmd_init,dev_force_channel_secrets,?secrets,
16msgdata,hsmd_init,dev_force_channel_secrets_shaseed,?sha256,
17msgdata,hsmd_init,hsm_wire_min_version,u32,
18msgdata,hsmd_init,hsm_wire_max_version,u32,
19#include <common/bip32.h>
20# DEPRECATED after v0.12, remove in two versions!
21msgtype,hsmd_init_reply_v1,111
22msgdata,hsmd_init_reply_v1,node_id,node_id,
23msgdata,hsmd_init_reply_v1,bip32,ext_key,
24msgdata,hsmd_init_reply_v1,bolt12,u8,32
25msgdata,hsmd_init_reply_v1,onion_reply_secret,secret,
26msgtype,hsmd_init_reply_v2,113
27msgdata,hsmd_init_reply_v2,node_id,node_id,
28msgdata,hsmd_init_reply_v2,bip32,ext_key,
29msgdata,hsmd_init_reply_v2,bolt12,pubkey,
30msgdata,hsmd_init_reply_v2,onion_reply_secret,secret,
31# Declare a new channel.
32msgtype,hsmd_new_channel,30
33msgdata,hsmd_new_channel,id,node_id,
34msgdata,hsmd_new_channel,dbid,u64,
35# No value returned.
36msgtype,hsmd_new_channel_reply,130
37# Get a new HSM FD, with the specified capabilities
38msgtype,hsmd_client_hsmfd,9
39# Which identity to use for requests
40msgdata,hsmd_client_hsmfd,id,node_id,
41# Database id for this client, if any.
42msgdata,hsmd_client_hsmfd,dbid,u64,
43msgdata,hsmd_client_hsmfd,capabilities,u64,
44# No content, just an fd.
45msgtype,hsmd_client_hsmfd_reply,109
46#include <common/derive_basepoints.h>
47# Get the basepoints and funding key for this specific channel.
48msgtype,hsmd_get_channel_basepoints,10
49msgdata,hsmd_get_channel_basepoints,peerid,node_id,
50msgdata,hsmd_get_channel_basepoints,dbid,u64,
51msgtype,hsmd_get_channel_basepoints_reply,110
52msgdata,hsmd_get_channel_basepoints_reply,basepoints,basepoints,
53msgdata,hsmd_get_channel_basepoints_reply,funding_pubkey,pubkey,
54#include <common/channel_type.h>
55# Provide channel parameters.
56msgtype,hsmd_ready_channel,31
57msgdata,hsmd_ready_channel,is_outbound,bool,
58msgdata,hsmd_ready_channel,channel_value,amount_sat,
59msgdata,hsmd_ready_channel,push_value,amount_msat,
60msgdata,hsmd_ready_channel,funding_txid,bitcoin_txid,
61msgdata,hsmd_ready_channel,funding_txout,u16,
62msgdata,hsmd_ready_channel,local_to_self_delay,u16,
63msgdata,hsmd_ready_channel,local_shutdown_script_len,u16,
64msgdata,hsmd_ready_channel,local_shutdown_script,u8,local_shutdown_script_len
65msgdata,hsmd_ready_channel,local_shutdown_wallet_index,?u32,
66msgdata,hsmd_ready_channel,remote_basepoints,basepoints,
67msgdata,hsmd_ready_channel,remote_funding_pubkey,pubkey,
68msgdata,hsmd_ready_channel,remote_to_self_delay,u16,
69msgdata,hsmd_ready_channel,remote_shutdown_script_len,u16,
70msgdata,hsmd_ready_channel,remote_shutdown_script,u8,remote_shutdown_script_len
71msgdata,hsmd_ready_channel,channel_type,channel_type,
72# No value returned.
73msgtype,hsmd_ready_channel_reply,131
74# Return signature for a funding tx.
75#include <common/utxo.h>
76# Master asks the HSM to sign a node_announcement
77msgtype,hsmd_node_announcement_sig_req,6
78msgdata,hsmd_node_announcement_sig_req,annlen,u16,
79msgdata,hsmd_node_announcement_sig_req,announcement,u8,annlen
80msgtype,hsmd_node_announcement_sig_reply,106
81msgdata,hsmd_node_announcement_sig_reply,signature,secp256k1_ecdsa_signature,
82# Sign a withdrawal request
83#include <bitcoin/psbt.h>
84msgtype,hsmd_sign_withdrawal,7
85msgdata,hsmd_sign_withdrawal,num_inputs,u16,
86msgdata,hsmd_sign_withdrawal,inputs,utxo,num_inputs
87msgdata,hsmd_sign_withdrawal,psbt,wally_psbt,
88msgtype,hsmd_sign_withdrawal_reply,107
89msgdata,hsmd_sign_withdrawal_reply,psbt,wally_psbt,
90# Sign an invoice
91msgtype,hsmd_sign_invoice,8
92msgdata,hsmd_sign_invoice,len,u16,
93msgdata,hsmd_sign_invoice,u5bytes,u8,len
94msgdata,hsmd_sign_invoice,hrplen,u16,
95msgdata,hsmd_sign_invoice,hrp,u8,hrplen
96msgtype,hsmd_sign_invoice_reply,108
97msgdata,hsmd_sign_invoice_reply,sig,secp256k1_ecdsa_recoverable_signature,
98# Give me ECDH(node-id-secret,point)
99msgtype,hsmd_ecdh_req,1
100msgdata,hsmd_ecdh_req,point,pubkey,
101msgtype,hsmd_ecdh_resp,100
102msgdata,hsmd_ecdh_resp,ss,secret,
103msgtype,hsmd_cannouncement_sig_req,2
104msgdata,hsmd_cannouncement_sig_req,calen,u16,
105msgdata,hsmd_cannouncement_sig_req,ca,u8,calen
106msgtype,hsmd_cannouncement_sig_reply,102
107msgdata,hsmd_cannouncement_sig_reply,node_signature,secp256k1_ecdsa_signature,
108msgdata,hsmd_cannouncement_sig_reply,bitcoin_signature,secp256k1_ecdsa_signature,
109msgtype,hsmd_cupdate_sig_req,3
110msgdata,hsmd_cupdate_sig_req,culen,u16,
111msgdata,hsmd_cupdate_sig_req,cu,u8,culen
112msgtype,hsmd_cupdate_sig_reply,103
113msgdata,hsmd_cupdate_sig_reply,culen,u16,
114msgdata,hsmd_cupdate_sig_reply,cu,u8,culen
115# Master asks HSM to sign a commitment transaction.
116msgtype,hsmd_sign_commitment_tx,5
117msgdata,hsmd_sign_commitment_tx,peer_id,node_id,
118msgdata,hsmd_sign_commitment_tx,channel_dbid,u64,
119msgdata,hsmd_sign_commitment_tx,tx,bitcoin_tx,
120msgdata,hsmd_sign_commitment_tx,remote_funding_key,pubkey,
121msgdata,hsmd_sign_commitment_tx,commit_num,u64,
122msgtype,hsmd_sign_commitment_tx_reply,105
123msgdata,hsmd_sign_commitment_tx_reply,sig,bitcoin_signature,
124# Validate the counterparty's commitment signatures.
125msgtype,hsmd_validate_commitment_tx,35
126msgdata,hsmd_validate_commitment_tx,tx,bitcoin_tx,
127msgdata,hsmd_validate_commitment_tx,num_htlcs,u16,
128msgdata,hsmd_validate_commitment_tx,htlcs,simple_htlc,num_htlcs
129msgdata,hsmd_validate_commitment_tx,commit_num,u64,
130msgdata,hsmd_validate_commitment_tx,feerate,u32,
131msgdata,hsmd_validate_commitment_tx,sig,bitcoin_signature,
132msgdata,hsmd_validate_commitment_tx,num_htlc_sigs,u16,
133msgdata,hsmd_validate_commitment_tx,htlc_sigs,bitcoin_signature,num_htlc_sigs
134msgtype,hsmd_validate_commitment_tx_reply,135
135msgdata,hsmd_validate_commitment_tx_reply,old_commitment_secret,?secret,
136msgdata,hsmd_validate_commitment_tx_reply,next_per_commitment_point,pubkey,
137# Vaidate the counterparty's revocation secret
138msgtype,hsmd_validate_revocation,36
139msgdata,hsmd_validate_revocation,revoke_num,u64,
140msgdata,hsmd_validate_revocation,per_commitment_secret,secret,
141# No value returned.
142msgtype,hsmd_validate_revocation_reply,136
143# Onchaind asks HSM to sign a spend to-us. Four variants, since each set
144# of keys is derived differently...
145# FIXME: Have master tell hsmd the keyindex, so it can validate output!
146msgtype,hsmd_sign_delayed_payment_to_us,12
147msgdata,hsmd_sign_delayed_payment_to_us,commit_num,u64,
148msgdata,hsmd_sign_delayed_payment_to_us,tx,bitcoin_tx,
149msgdata,hsmd_sign_delayed_payment_to_us,wscript_len,u16,
150msgdata,hsmd_sign_delayed_payment_to_us,wscript,u8,wscript_len
151msgtype,hsmd_sign_remote_htlc_to_us,13
152msgdata,hsmd_sign_remote_htlc_to_us,remote_per_commitment_point,pubkey,
153msgdata,hsmd_sign_remote_htlc_to_us,tx,bitcoin_tx,
154msgdata,hsmd_sign_remote_htlc_to_us,wscript_len,u16,
155msgdata,hsmd_sign_remote_htlc_to_us,wscript,u8,wscript_len
156msgdata,hsmd_sign_remote_htlc_to_us,option_anchor_outputs,bool,
157msgtype,hsmd_sign_penalty_to_us,14
158msgdata,hsmd_sign_penalty_to_us,revocation_secret,secret,
159msgdata,hsmd_sign_penalty_to_us,tx,bitcoin_tx,
160msgdata,hsmd_sign_penalty_to_us,wscript_len,u16,
161msgdata,hsmd_sign_penalty_to_us,wscript,u8,wscript_len
162# Onchaind asks HSM to sign a local HTLC success or HTLC timeout tx.
163msgtype,hsmd_sign_local_htlc_tx,16
164msgdata,hsmd_sign_local_htlc_tx,commit_num,u64,
165msgdata,hsmd_sign_local_htlc_tx,tx,bitcoin_tx,
166msgdata,hsmd_sign_local_htlc_tx,wscript_len,u16,
167msgdata,hsmd_sign_local_htlc_tx,wscript,u8,wscript_len
168msgdata,hsmd_sign_local_htlc_tx,option_anchor_outputs,bool,
169# Openingd/channeld asks HSM to sign the other sides' commitment tx.
170#include <common/htlc_wire.h>
171msgtype,hsmd_sign_remote_commitment_tx,19
172msgdata,hsmd_sign_remote_commitment_tx,tx,bitcoin_tx,
173msgdata,hsmd_sign_remote_commitment_tx,remote_funding_key,pubkey,
174msgdata,hsmd_sign_remote_commitment_tx,remote_per_commit,pubkey,
175msgdata,hsmd_sign_remote_commitment_tx,option_static_remotekey,bool,
176msgdata,hsmd_sign_remote_commitment_tx,commit_num,u64,
177msgdata,hsmd_sign_remote_commitment_tx,num_htlcs,u16,
178msgdata,hsmd_sign_remote_commitment_tx,htlcs,simple_htlc,num_htlcs
179msgdata,hsmd_sign_remote_commitment_tx,feerate,u32,
180# channeld asks HSM to sign remote HTLC tx.
181msgtype,hsmd_sign_remote_htlc_tx,20
182msgdata,hsmd_sign_remote_htlc_tx,tx,bitcoin_tx,
183msgdata,hsmd_sign_remote_htlc_tx,len,u16,
184msgdata,hsmd_sign_remote_htlc_tx,wscript,u8,len
185msgdata,hsmd_sign_remote_htlc_tx,remote_per_commit_point,pubkey,
186msgdata,hsmd_sign_remote_htlc_tx,option_anchor_outputs,bool,
187# closingd asks HSM to sign mutual close tx.
188msgtype,hsmd_sign_mutual_close_tx,21
189msgdata,hsmd_sign_mutual_close_tx,tx,bitcoin_tx,
190msgdata,hsmd_sign_mutual_close_tx,remote_funding_key,pubkey,
191# Reply for all the above requests.
192msgtype,hsmd_sign_tx_reply,112
193msgdata,hsmd_sign_tx_reply,sig,bitcoin_signature,
194# Openingd/channeld/onchaind asks for Nth per_commitment_point, if > 2, gets N-2 secret.
195msgtype,hsmd_get_per_commitment_point,18
196msgdata,hsmd_get_per_commitment_point,n,u64,
197msgtype,hsmd_get_per_commitment_point_reply,118
198msgdata,hsmd_get_per_commitment_point_reply,per_commitment_point,pubkey,
199msgdata,hsmd_get_per_commitment_point_reply,old_commitment_secret,?secret,
200# master -> hsmd: do you have a memleak?
201msgtype,hsmd_dev_memleak,33
202msgtype,hsmd_dev_memleak_reply,133
203msgdata,hsmd_dev_memleak_reply,leak,bool,
204# channeld asks to check if claimed future commitment_secret is correct.
205msgtype,hsmd_check_future_secret,22
206msgdata,hsmd_check_future_secret,n,u64,
207msgdata,hsmd_check_future_secret,commitment_secret,secret,
208msgtype,hsmd_check_future_secret_reply,122
209msgdata,hsmd_check_future_secret_reply,correct,bool,
210# lightningd asks us to sign a string.
211msgtype,hsmd_sign_message,23
212msgdata,hsmd_sign_message,len,u16,
213msgdata,hsmd_sign_message,msg,u8,len
214msgtype,hsmd_sign_message_reply,123
215msgdata,hsmd_sign_message_reply,sig,secp256k1_ecdsa_recoverable_signature,
216# lightningd needs to get a scriptPubkey for a utxo with closeinfo
217msgtype,hsmd_get_output_scriptpubkey,24
218msgdata,hsmd_get_output_scriptpubkey,channel_id,u64,
219msgdata,hsmd_get_output_scriptpubkey,peer_id,node_id,
220msgdata,hsmd_get_output_scriptpubkey,commitment_point,?pubkey,
221msgtype,hsmd_get_output_scriptpubkey_reply,124
222msgdata,hsmd_get_output_scriptpubkey_reply,script_len,u16,
223msgdata,hsmd_get_output_scriptpubkey_reply,script,u8,script_len
224# Sign a bolt12-style merkle hash
225msgtype,hsmd_sign_bolt12,25
226msgdata,hsmd_sign_bolt12,messagename,wirestring,
227msgdata,hsmd_sign_bolt12,fieldname,wirestring,
228msgdata,hsmd_sign_bolt12,merkleroot,sha256,
229# This is for invreq payer_id (temporary keys)
230msgdata,hsmd_sign_bolt12,publictweaklen,u16,
231msgdata,hsmd_sign_bolt12,publictweak,u8,publictweaklen
232msgtype,hsmd_sign_bolt12_reply,125
233msgdata,hsmd_sign_bolt12_reply,sig,bip340sig,
234# Sign an option_will_fund offer hash
235msgtype,hsmd_sign_option_will_fund_offer,26
236msgdata,hsmd_sign_option_will_fund_offer,funding_pubkey,pubkey,
237msgdata,hsmd_sign_option_will_fund_offer,blockheight,u32,
238msgdata,hsmd_sign_option_will_fund_offer,channel_fee_base_max_msat,u32,
239msgdata,hsmd_sign_option_will_fund_offer,channel_fee_proportional_basis_max,u16,
240msgtype,hsmd_sign_option_will_fund_offer_reply,126
241msgdata,hsmd_sign_option_will_fund_offer_reply,rsig,secp256k1_ecdsa_signature,
242# Derive pseudorandom secret
243msgtype,hsmd_derive_secret,27
244msgdata,hsmd_derive_secret,len,u16,
245msgdata,hsmd_derive_secret,info,u8,len
246# Reply with the derived secret
247msgtype,hsmd_derive_secret_reply,127
248msgdata,hsmd_derive_secret_reply,secret,secret,