core-lightning/hsmd/hsm_client_wire_csv
Christian Decker ce845853b0 hsm: Generate fully signed transactions and return them to caller
So far we have been generating the tx both in the HSM and in the
caller, and had to rely on them generating exactly the same
transaction. This makes it a lot simpler by fully signing and
serializing the TX on the HSM side and the caller just needs to unpack
and broadcast it.

Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-01-08 17:19:25 +01:00

93 lines
2.7 KiB
Plaintext

# Clients should not give a bad request but not the HSM's decision to crash.
hsmstatus_client_bad_request,1000
hsmstatus_client_bad_request,,id,struct pubkey
hsmstatus_client_bad_request,,len,u16
hsmstatus_client_bad_request,,msg,len*u8
# Start the HSM.
hsm_init,11
hsm_init,,new,bool
#include <common/bip32.h>
hsm_init_reply,111
hsm_init_reply,,node_id,struct pubkey
hsm_init_reply,,peer_seed,struct secret
hsm_init_reply,,bip32,struct ext_key
# Get a new HSM FD, with the specified capabilities
hsm_client_hsmfd,9
hsm_client_hsmfd,,pubkey,struct pubkey # Which identity to report for requests
hsm_client_hsmfd,,capabilities,u64
# No content, just an fd.
hsm_client_hsmfd_reply,109
# Return signature for a funding tx.
#include <common/utxo.h>
# FIXME: This should also take their commit sig & details, to verify.
hsm_sign_funding,4
hsm_sign_funding,,satoshi_out,u64
hsm_sign_funding,,change_out,u64
hsm_sign_funding,,change_keyindex,u32
hsm_sign_funding,,our_pubkey,struct pubkey
hsm_sign_funding,,their_pubkey,struct pubkey
hsm_sign_funding,,num_inputs,u16
hsm_sign_funding,,inputs,num_inputs*struct utxo
hsm_sign_funding_reply,104
hsm_sign_funding_reply,,num_sigs,u16
hsm_sign_funding_reply,,sig,num_sigs*secp256k1_ecdsa_signature
# Master asks the HSM to sign a node_announcement
hsm_node_announcement_sig_req,6
hsm_node_announcement_sig_req,,annlen,u16
hsm_node_announcement_sig_req,,announcement,annlen*u8
hsm_node_announcement_sig_reply,106
hsm_node_announcement_sig_reply,,signature,secp256k1_ecdsa_signature
# Sign a withdrawal request
hsm_sign_withdrawal,7
hsm_sign_withdrawal,,satoshi_out,u64
hsm_sign_withdrawal,,change_out,u64
hsm_sign_withdrawal,,change_keyindex,u32
hsm_sign_withdrawal,,scriptpubkey_len,u16
hsm_sign_withdrawal,,scriptpubkey,scriptpubkey_len*u8
hsm_sign_withdrawal,,num_inputs,u16
hsm_sign_withdrawal,,inputs,num_inputs*struct utxo
hsm_sign_withdrawal_reply,107
hsm_sign_withdrawal_reply,,tx,struct bitcoin_tx
# Sign an invoice
hsm_sign_invoice,8
hsm_sign_invoice,,len,u16
hsm_sign_invoice,,u5bytes,len*u8
hsm_sign_invoice,,hrplen,u16
hsm_sign_invoice,,hrp,hrplen*u8
hsm_sign_invoice_reply,108
hsm_sign_invoice_reply,,sig,secp256k1_ecdsa_recoverable_signature
# Give me ECDH(node-id-secret,point)
hsm_ecdh_req,1
hsm_ecdh_req,,point,struct pubkey
hsm_ecdh_resp,100
hsm_ecdh_resp,,ss,struct secret
hsm_cannouncement_sig_req,2
hsm_cannouncement_sig_req,,bitcoin_id,struct pubkey
hsm_cannouncement_sig_req,,calen,u16
hsm_cannouncement_sig_req,,ca,calen*u8
hsm_cannouncement_sig_reply,102
hsm_cannouncement_sig_reply,,node_signature,secp256k1_ecdsa_signature
hsm_cupdate_sig_req,3
hsm_cupdate_sig_req,,culen,u16
hsm_cupdate_sig_req,,cu,culen*u8
hsm_cupdate_sig_reply,103
hsm_cupdate_sig_reply,,culen,u16
hsm_cupdate_sig_reply,,cu,culen*u8