mirror of
https://github.com/ElementsProject/lightning.git
synced 2024-11-20 02:27:51 +01:00
ce845853b0
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>
93 lines
2.7 KiB
Plaintext
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
|