niftynei
265f960cfe
liquidity-ads: persist channel blockheight states to disk
...
Adds new tables to database, backfills, basically copies the fee_rates
state machine for channeld.
2021-07-20 13:28:38 -04:00
niftynei
5989433810
lease_rates: pass in 'lease_expiry' and 'csv' to commitments/channel
2021-07-20 13:28:38 -04:00
niftynei
c9d2748081
lease_rates: add csv lock to modify anchor scripts
2021-07-20 13:28:38 -04:00
niftynei
e992b54410
script: add csv_lock to scripts
2021-07-20 13:28:38 -04:00
niftynei
9dd0a2c2e5
channel-lease: validate accepter's sig on lease terms
2021-07-20 13:28:38 -04:00
niftynei
3a7b3762a1
hsmd: method to sign liquidity ad offer
...
When we accept a bid to create a channel lease, we send back a signature
committing to our max channel lease amounts.
2021-07-20 13:28:38 -04:00
Christian Decker
b4ead97517
tlv: Allow passing some extra types to accept when parsing the stream
2021-06-26 10:55:13 +09:30
Rusty Russell
2fea448498
gen/impl_template: fix generation of singleton varsize elements.
...
And as Lisa requested, add testcases.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2021-06-04 16:13:08 +09:30
Christian Decker
323b1a558b
libhsmd: Add missing implementation of status functions
2021-05-15 09:31:12 +09:30
Christian Decker
96acafcef3
libhsmd: Prefix check_client_capabilities
...
I wante to hide it inside the library, but it is good to have a single
place to verify that the client was permitted to send a message we are
handling, so make it officially part of the interface by prefixing it.
2021-05-04 11:18:52 +09:30
Christian Decker
fb2b107bef
libhsmd: Cleanup the bip32_key_version
2021-05-04 11:18:52 +09:30
Christian Decker
4d43e84afd
libhsmd: Finalize encapsulation of hsmd data in libhsmd
...
Changelog-Added: libhsmd: Extracted the `hsmd` logic into its own library for other projects to use
2021-05-04 11:18:52 +09:30
Christian Decker
c9e9581b35
libhsmd: Migrate bolt12 initialization into hsmd_init
2021-05-04 11:18:52 +09:30
Christian Decker
d30392c432
libhsmd: Start migrating initialization to hsmd_init
2021-05-04 11:18:52 +09:30
Christian Decker
befa7fb9f0
libhsmd: Clean up includes in hsmd.c
2021-05-04 11:18:52 +09:30
Christian Decker
1efa792edc
libhsmd: Migrate handle_sign_delayer_payment_to_us
2021-05-04 11:18:52 +09:30
Christian Decker
fe82181fe3
libhsmd: Migrate handle_sign_remote_htlc_to_us
2021-05-04 11:18:52 +09:30
Christian Decker
e643594104
libhsmd: handle_sign_commitment_tx
2021-05-04 11:18:52 +09:30
Christian Decker
4764ebd879
libhsmd: Migrate handle_sign_penalty_to_us
2021-05-04 11:18:52 +09:30
Christian Decker
bee7a65170
libhsmd: Migrate handle_sign_remote_commitment_tx
2021-05-04 11:18:52 +09:30
Christian Decker
c2d035d377
libhsmd: Migrate handle_sign_remote_htlc_tx
2021-05-04 11:18:52 +09:30
Christian Decker
7b2c6ec4d3
libhsmd: Migrate handle_sign_local_htlc_tx
2021-05-04 11:18:52 +09:30
Christian Decker
cd8fb641cf
libhsmd: Migrate handle_sign_mutual_tx
2021-05-04 11:18:52 +09:30
Christian Decker
9aa4b5198d
libhsmd: Migrate handle_sign_withdrawal_tx
2021-05-04 11:18:52 +09:30
Christian Decker
e7007a7f36
libhsmd: Migrate handle_get_per_commitment_point
2021-05-04 11:18:52 +09:30
Christian Decker
eab4aeaed3
libhsmd: Migrate handle_channel_update_sig
2021-05-04 11:18:52 +09:30
Christian Decker
166f0ade04
libhsmd: Migrate handle_sign_node_announcement
2021-05-04 11:18:52 +09:30
Christian Decker
4a3f24a737
libhsmd: Migrate handle_cannouncement_sig
2021-05-04 11:18:52 +09:30
Christian Decker
e9cc8644b6
libhsmd: Migrate handle_get_output_scriptpubkey
2021-05-04 11:18:52 +09:30
Christian Decker
ec5d40c0e7
libhsmd: Migrate handle_check_future_secret
2021-05-04 11:18:52 +09:30
Christian Decker
0e61ed32e3
libhsmd: Migrate handle_ecdh
2021-05-04 11:18:52 +09:30
Christian Decker
d1b3a5b1aa
libhsmd: Migrate handle_get_channel_basepoints
2021-05-04 11:18:52 +09:30
Christian Decker
2cb25a16e0
libhsmd: Migrate handle_sign_invoice
2021-05-04 11:18:52 +09:30
Christian Decker
79ec4b4808
libhsmd: Migrate handle_sign_bolt12
2021-05-04 11:18:52 +09:30
Christian Decker
3d959e128d
libhsmd: Add dispatcher function
2021-05-04 11:18:52 +09:30
Christian Decker
ac836bbd1b
libhsmd: Add status functions to report to whoever is listening
...
These are currently just shims that replicate the old behavior, but
when compiling as a library we can relink the status_* functions to
something that makes sense in the context of the user, and not assume
we're running as a subdaemon.
2021-05-04 11:18:52 +09:30
Christian Decker
b5a2ddd384
libhsmd: Migrate check_client_capabilities to libhsmd
2021-05-04 11:18:52 +09:30
Christian Decker
ed4676bea8
libhsmd: Add scaffolding to start separating hsmd from io logic
2021-05-04 11:18:52 +09:30
Rusty Russell
9dbac21d3b
doc: remove suffix for included-in-master BOLTs.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2021-04-07 14:34:39 +09:30
Christian Decker
65bf347ad3
hsmd: Ensure the hsmd is initialized before anything else is called
...
Just a security measure to avoid alternative use-cases of the hsmd
running into the issue that they need to send a `WIRE_HSMD_INIT`
message as first message. If that is not done, the `secretstuff` won't
get initialized and we'd be producing signatures from uninitialized
memory, which are completely useless.
Changelog-None: Internal change only
2021-03-09 14:40:02 +10:30
Rusty Russell
001b5d6416
offers: make it a runtime option.
...
The fetchinvoice and offers plugins disable themselves if the option
isn't enabled (it's enabled by default on EXPERIMENTAL_FEATURES).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Changelog-Added: `experimental-offers` enables fetch, payment and creation of (early draft) offers.
2021-01-13 14:45:36 +01:00
Rusty Russell
6dab04ebd5
tools/generate-wire.py: include digits in #ifndef idempotent header.
...
Otherwise check complains that it's '#ifndef LIGHTNING_WIRE_BOLT_WIREGEN_H':
wire/bolt12_wiregen.h seems to be missing the expected include guard:
#ifndef LIGHTNING_WIRE_BOLT12_WIREGEN_H
#define LIGHTNING_WIRE_BOLT12_WIREGEN_H
...
#endif /* LIGHTNING_WIRE_BOLT12_WIREGEN_H */
make: *** [Makefile:458: check-includes] Error 1
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2021-01-13 14:45:36 +01:00
Antoine Poinsot
45bb1bfa3c
hsmd: cleanup encrypted hsm_secret detection
...
This makes use of the constant defined in the previous commits to more
accurately detect plaintext, encrypted, and invalid seeds. We now error
on invalid seeds.
Changelog-changed: hsmd: we now error at startup on invalid hsm_secret
Changelog-changed: hsmtool: all commands now error on invalid hsm_secret
Signed-off-by: Antoine Poinsot <darosior@protonmail.com>
2021-01-06 13:50:01 +01:00
Antoine Poinsot
d2a903992c
hsmd: regroup hsm_secret decryption logic
...
Signed-off-by: Antoine Poinsot <darosior@protonmail.com>
2021-01-06 13:50:01 +01:00
Antoine Poinsot
c6bc22b0f5
hsmd: group hsm_secret encryption
...
Signed-off-by: Antoine Poinsot <darosior@protonmail.com>
2021-01-06 13:50:01 +01:00
Antoine Poinsot
917f78a4f8
lightningd: group hsm_secret encryption key derivation
...
This avoids duplication of both logic and error-prone values, such as
the salt. Grouping all hsm encryption logic into a public API will also
allow us to fuzz it.
Signed-off-by: Antoine Poinsot <darosior@protonmail.com>
2021-01-06 13:50:01 +01:00
Rusty Russell
59efd160c1
hsmd: code to sign bolt12 messages with a tweaked key.
...
Invoices are signed with our own key, but we use a transient payer_key with a
tweak for invoice_requests (and refunds).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2020-12-23 14:24:39 +01:00
Rusty Russell
86176e8d0a
hsmd: code to sign a bolt12 merkle root.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2020-12-09 16:40:13 +10:30
Rusty Russell
a11edebb7c
utf8: handle UTF-8 arrays.
...
BOLT 12 introduces this as a new fundamental type, which lets us easily
validate them.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2020-12-09 16:40:13 +10:30
Rusty Russell
ff8830876d
wire/tlvstream: add tlv_make_fields helper to populate ->fields array.
...
This is vital for calculating merkle trees; I previously used
towire+fromwire to get this!
Requires generation change so we can magic the ARRAY_SIZE var (the C
pre-processor can't uppercase things).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2020-12-04 20:16:54 -06:00