core-lightning/hsmd/hsm_wire.csv
Rusty Russell dffe2f516a signature: wrap almost all signatures in struct bitcoin_signature.
This is prep work for when we sign htlc txs with
SIGHASH_SINGLE|SIGHASH_ANYONECANPAY.

We still deal with raw signatures for the htlc txs at the moment, since
we send them like that across the wire, and changing that was simply too
painful (for the moment?).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-12-06 23:11:51 +01:00

6.4 KiB

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