core-lightning/common
Rusty Russell 5becfa6ee1 onion_message: don't use general secret, use per-message secret.
We had a scheme where lightningd itself would put a per-node secret in
the blinded path, then we'd tell the caller when it was used.  Then it
simply checks the alias to determine if the correct path was used.

But this doesn't work when we start to offer multiple blinded paths.
So go for a far simpler scheme, where the secret is generated (and
stored) by the caller, and hand it back to them.

We keep the split "with secret" or "without secret" API, since I'm
sure callers who don't care about the secret won't check that it
doesn't exist!  And without that, someone can use a blinded path for a
different message and get a response which may reveal the node.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2022-11-09 15:08:03 +01:00
..
test common/blindedpath: expose API at a lower level. 2022-11-09 15:08:03 +01:00
addr.c bitcoin/chainparams.h: Split BIP173 name into onchain and Lightning HRPs. 2021-12-14 11:21:35 +10:30
addr.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
amount.c common: Add multiplication primitives for amount_msat and amount_sat 2022-09-21 11:25:47 +02:00
amount.h common: Add multiplication primitives for amount_msat and amount_sat 2022-09-21 11:25:47 +02:00
autodata.c common: clean up autodata in common_shutdown(). 2021-11-17 10:51:48 +10:30
autodata.h common: clean up autodata in common_shutdown(). 2021-11-17 10:51:48 +10:30
base32.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
base32.h common/base32: make this a simple tal-wrapper around ccan/base32. 2018-05-10 02:28:44 +00:00
base64.c common: use ccan/base64 instead of libsodium. 2021-11-14 18:49:46 +01:00
base64.h wireaddr: clean up tor parsing. 2021-11-14 18:49:46 +01:00
bech32.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
bech32.h common/bech32: update to bech32m reference. 2021-06-11 13:54:20 +09:30
bech32_util.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
bech32_util.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
bigsize.c check-includes: allow redundant "config.h" 2021-02-04 12:02:36 +10:30
bigsize.h Remove varint typedef for bigsize 2020-09-23 16:30:36 +09:30
billboard.c build: allow DEVELOPER builds with -Og and gcc 9.4.0 2022-09-19 10:18:55 +09:30
billboard.h channeld/dualopend/lightningd: use channel_ready everywhere. 2022-09-12 09:34:52 +09:30
bip32.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
bip32.h wire: move remaining bitcoin functions out to bitcoin/ files. 2020-05-18 14:51:12 +02:00
blindedpath.c common/blindedpath: expose API at a lower level. 2022-11-09 15:08:03 +01:00
blindedpath.h common/blindedpath: expose API at a lower level. 2022-11-09 15:08:03 +01:00
blindedpay.c common/onion: split into decode and encode routines. 2022-11-09 15:08:03 +01:00
blindedpay.h common/blindedpay: routines to construct a blinded payment. 2022-10-26 11:29:06 +10:30
blinding.c Changed external/libwally-core to test_build_fix 2022-04-12 15:17:52 +09:30
blinding.h common: add blinding helpers. 2020-04-04 16:08:49 +10:30
blockheight_states.c global: use tal_dup_or_null(). 2021-12-30 14:36:55 +10:30
blockheight_states.h liquidity-ads: persist channel blockheight states to disk 2021-07-20 13:28:38 -04:00
bolt11.c bolt11: reorder invoice production to match test vectors. 2022-04-02 09:40:18 +10:30
bolt11.h bolt11: reorder invoice production to match test vectors. 2022-04-02 09:40:18 +10:30
bolt11_json.c common: clean up json routine locations. 2022-07-15 12:24:00 -05:00
bolt11_json.h common/bolt11_json: extract bolt11->json code. 2021-01-09 14:34:35 +10:30
bolt12.c BOLTs: update to more recent bolt12 spec. 2022-10-26 11:29:06 +10:30
bolt12.h BOLTs: update to more recent bolt12 spec. 2022-10-26 11:29:06 +10:30
bolt12_merkle.c bolt12: change our payer_key calculation. 2022-10-26 11:29:06 +10:30
bolt12_merkle.h hsmd: don't use point32 for bolt12, but use pubkeys (though still always 02) 2022-10-26 11:29:06 +10:30
channel_config.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
channel_config.h lightningd: new option for htlc dust limit 2021-10-23 12:59:13 +02:00
channel_id.c common: generalize extract_channel_id(). 2021-12-30 09:50:40 +10:30
channel_id.h common: generalize extract_channel_id(). 2021-12-30 09:50:40 +10:30
channel_type.c doc: update BOLTs to bc86304b4b0af5fd5ce9d24f74e2ebbceb7e2730 2022-09-12 09:34:52 +09:30
channel_type.h channeld: import updated channel_upgrade spec. 2021-10-08 16:07:21 +02:00
close_tx.c hsmd: Add wallet index metadata to existing messages 2022-03-10 10:22:29 +10:30
close_tx.h hsmd: Add wallet index metadata to existing messages 2022-03-10 10:22:29 +10:30
closing_fee.h closingd: configurable closing fee negotiation step 2020-04-07 13:52:48 +09:30
coin_mvt.c bkpr: for zerconfs, we still wanna know you're opening a channel 2022-07-28 12:08:18 +09:30
coin_mvt.h bkpr: for zerconfs, we still wanna know you're opening a channel 2022-07-28 12:08:18 +09:30
configdir.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
configdir.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
crypto_state.h per_peer_state: remove struct crypto_state 2022-01-20 15:24:06 +10:30
cryptomsg.c cleanup: remove unneeded includes in C files. 2021-09-17 09:43:22 +09:30
cryptomsg.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
daemon.c Fix memory leak abort in debug mode 2021-10-10 13:22:29 +02:00
daemon.h Add missing extern qualifiers for gcc 10 2020-02-02 12:59:17 +10:30
daemon_conn.c common/daemon_conn: add function to read an fd. 2022-07-18 20:50:04 -05:00
daemon_conn.h common/daemon_conn: add function to read an fd. 2022-07-18 20:50:04 -05:00
decode_array.c Makefile: update to BOLTs without zlib. 2022-05-19 09:47:32 +09:30
decode_array.h Makefile: update to BOLTs without zlib. 2022-05-19 09:47:32 +09:30
derive_basepoints.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
derive_basepoints.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
descriptor_checksum.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
descriptor_checksum.h common: add a descriptor checksum computation module 2020-11-10 10:34:13 -06:00
dev_disconnect.c connectd: implement @ correctly. 2022-01-20 15:24:06 +10:30
dev_disconnect.h connectd: implement @ correctly. 2022-01-20 15:24:06 +10:30
dijkstra.c common: remove unused functions or make static. 2021-12-06 10:05:39 +10:30
dijkstra.h common: remove unused functions or make static. 2021-12-06 10:05:39 +10:30
ecdh.h common: generalize ecdh function. 2020-04-04 16:08:49 +10:30
ecdh_hsmd.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
ecdh_hsmd.h common: generalize ecdh function. 2020-04-04 16:08:49 +10:30
errcode.h jsonrpc: make error codes an enum. 2022-09-19 10:18:55 +09:30
features.c common/features: understand the route_blinding feature (feature 24) 2022-10-26 11:29:06 +10:30
features.h common/features: understand the route_blinding feature (feature 24) 2022-10-26 11:29:06 +10:30
fee_states.c global: use tal_dup_or_null(). 2021-12-30 14:36:55 +10:30
fee_states.h channeld: tweak function to allow testing for pending *uncommitted* changes. 2021-06-04 16:13:08 +09:30
fp16.c common: extract fp16 routines into their own file. 2021-02-04 12:02:36 +10:30
fp16.h common: extract fp16 routines into their own file. 2021-02-04 12:02:36 +10:30
gossip_constants.h BOLT: update to version which requires option_channel_htlc_max. 2022-09-24 15:22:27 +09:30
gossip_store.c onionmessages: remove obsolete onion message parsing. 2022-09-29 16:10:57 +09:30
gossip_store.h gossipd: bump gossip_store to indicate all channel_update have htlc_max. 2022-09-24 15:22:27 +09:30
gossmap.c gossmap: move gossmap_guess_node_id to pay plugin. 2022-10-26 11:29:06 +10:30
gossmap.h Remove point32. 2022-10-26 11:29:06 +10:30
hash_u5.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
hash_u5.h common: use tabs everywhere. 2020-02-05 14:19:12 +01:00
hmac.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
hmac.h common/sphinx: don't make copy to compute packet hmac. 2020-12-11 15:51:24 +01:00
hsm_encryption.c lightningd: expand exit codes for various failures. 2022-07-20 19:28:33 +09:30
hsm_encryption.h cli: make the command line more user friendly. 2022-03-24 09:53:38 +10:30
hsm_version.h onion_message: don't use general secret, use per-message secret. 2022-11-09 15:08:03 +01:00
htlc.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
htlc_state.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
htlc_state.h Fix a-vs-an typos 2018-02-08 22:49:34 +01:00
htlc_trim.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
htlc_trim.h dusty-htlcs: enforce limit on dusty htlcs 2021-10-23 12:59:13 +02:00
htlc_tx.c BOLT: update to clarify HTLC tx amount calculation. 2022-09-24 15:22:27 +09:30
htlc_tx.h doc: update BOLT references part1, including bolt11 test vectors with payment_secret. 2022-04-02 09:40:18 +10:30
htlc_wire.c channeld: don't calculate blinding shared secret, let lightningd do it. 2022-10-26 11:29:06 +10:30
htlc_wire.h channeld: don't calculate blinding shared secret, let lightningd do it. 2022-10-26 11:29:06 +10:30
initial_channel.c common: use bitcoin_outpoint. 2021-10-15 12:09:36 +02:00
initial_channel.h common: use bitcoin_outpoint. 2021-10-15 12:09:36 +02:00
initial_commit_tx.c Makefile: update bolts to include remote_pubkey change. 2022-05-19 09:47:32 +09:30
initial_commit_tx.h No funding_wscript arg in initial_commit_tx 2022-07-01 13:30:19 -05:00
interactivetx.c Collaborative transaction building 2022-11-02 12:00:11 +01:00
interactivetx.h Collaborative transaction building 2022-11-02 12:00:11 +01:00
iso4217.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
iso4217.h common/iso4217: make find_iso4217 a little more usable. 2020-12-15 12:05:02 +01:00
json_command.h common/json_filter: routine to turn "filter" JSON into a filter. 2022-11-09 20:25:58 +10:30
json_filter.c common/json_filter: routine to turn "filter" JSON into a filter. 2022-11-09 20:25:58 +10:30
json_filter.h common/json_filter: routine to turn "filter" JSON into a filter. 2022-11-09 20:25:58 +10:30
json_param.c keysend: Allow quoted numbers in extratlvs 2022-11-01 17:05:30 +01:00
json_param.h lightningd/json.h: remove. 2022-07-15 12:24:00 -05:00
json_parse.c common: update to latest onion message spec. 2022-10-26 11:29:06 +10:30
json_parse.h common: update to latest onion message spec. 2022-10-26 11:29:06 +10:30
json_parse_simple.c json: Add helper for quoted numbers 2022-11-01 17:05:30 +01:00
json_parse_simple.h json: Add helper for quoted numbers 2022-11-01 17:05:30 +01:00
json_stream.c common/json_stream: support filtering don't print fields not allowed. 2022-11-09 20:25:58 +10:30
json_stream.h common/json_stream: support filtering don't print fields not allowed. 2022-11-09 20:25:58 +10:30
jsonrpc_errors.h lightningd: add delforward command. 2022-09-22 15:19:46 +02:00
key_derive.c Changed external/libwally-core to test_build_fix 2022-04-12 15:17:52 +09:30
key_derive.h headers: fix up header idempotent lines. 2017-08-29 17:54:14 +02:00
keyset.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
keyset.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
lease_rates.c lease_rates: prepare for msats fields as raw numbers. 2022-06-21 06:52:35 +09:30
lease_rates.h lease_rates: prepare for msats fields as raw numbers. 2022-06-21 06:52:35 +09:30
Makefile common/onion: split into decode and encode routines. 2022-11-09 15:08:03 +01:00
memleak.c libplugin: mark the cmd notleak() whenever command_still_pending() called. 2022-09-19 11:34:42 +09:30
memleak.h memleak: remove exclusions from memleak_start() 2022-09-19 11:34:42 +09:30
msg_queue.c msg_queue: don't allow magic MSG_PASS_FD message for peers. 2022-01-20 15:24:06 +10:30
msg_queue.h msg_queue: don't allow magic MSG_PASS_FD message for peers. 2022-01-20 15:24:06 +10:30
node_id.c Remove point32. 2022-10-26 11:29:06 +10:30
node_id.h Remove point32. 2022-10-26 11:29:06 +10:30
onion_decode.c common/blindedpath: expose API at a lower level. 2022-11-09 15:08:03 +01:00
onion_decode.h common/onion: split into decode and encode routines. 2022-11-09 15:08:03 +01:00
onion_encode.c common/onion: split into decode and encode routines. 2022-11-09 15:08:03 +01:00
onion_encode.h common/onion: split into decode and encode routines. 2022-11-09 15:08:03 +01:00
onion_message_parse.c common/onion_message_parse: generic routine for parsing onion messages. 2022-10-26 11:29:06 +10:30
onion_message_parse.h common/onion_message_parse: generic routine for parsing onion messages. 2022-10-26 11:29:06 +10:30
onionreply.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
onionreply.h common: add struct onionreply 2020-01-23 16:17:42 +10:30
overflows.h overflows: helpers for integer assignment overflows. 2021-07-20 13:28:38 -04:00
peer_billboard.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
peer_billboard.h common: peer_billboard() helper for updating the billboard. 2018-02-23 18:02:00 +01:00
peer_failed.c common: downgrade LND 'internal error' properly. 2022-06-26 13:52:14 +09:30
peer_failed.h common: remove peer_failed in favor of peer_failed_warn/peer_failed_err 2021-02-04 12:02:52 +10:30
peer_io.c peer subds: ignore failed writes. 2022-01-20 15:24:06 +10:30
peer_io.h connectd: do nagle by packet type. 2022-01-20 15:24:06 +10:30
peer_status_wire.csv subdaemons: don't stream gossip_store at all. 2022-01-20 15:24:06 +10:30
penalty_base.c check-includes: allow redundant "config.h" 2021-02-04 12:02:36 +10:30
penalty_base.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
per_peer_state.c subdaemons: remove gossipd fd from per-peer daemons. 2022-02-08 11:15:52 +10:30
per_peer_state.h subdaemons: remove gossipd fd from per-peer daemons. 2022-02-08 11:15:52 +10:30
permute_tx.c common: remove unused functions or make static. 2021-12-06 10:05:39 +10:30
permute_tx.h common: remove unused functions or make static. 2021-12-06 10:05:39 +10:30
ping.c doc: big BOLT update to incorporate warnings language. 2022-04-02 09:40:18 +10:30
ping.h channeld: restore ping command, but only for channeld. 2021-10-10 15:32:57 +02:00
private_channel_announcement.c cleanup: remove unneeded includes in C files. 2021-09-17 09:43:22 +09:30
private_channel_announcement.h gossip_store: make private channels more similar to channel_announcement 2020-10-21 08:58:34 +10:30
psbt_internal.c psbt: fix dual-funding memleak. 2022-03-21 10:19:50 +10:30
psbt_internal.h dual-funding: convert to runtime flag, --experimental-dual-fund 2021-03-25 20:05:11 +10:30
psbt_keypath.c hsmd: Add PSBT keypath utility functions 2022-03-10 10:22:29 +10:30
psbt_keypath.h hsmd: Add PSBT keypath utility functions 2022-03-10 10:22:29 +10:30
psbt_open.c coin moves: notify when we make deposits to external accounts 2022-01-26 13:34:45 +10:30
psbt_open.h coin moves: notify when we make deposits to external accounts 2022-01-26 13:34:45 +10:30
pseudorand.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
pseudorand.h common: expose pseudorand_double 2019-04-16 21:22:13 +00:00
random_select.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
random_select.h Apply @cdecker typo suggestions from code review 2020-08-28 10:56:50 +09:30
read_peer_msg.c doc: big BOLT update to incorporate warnings language. 2022-04-02 09:40:18 +10:30
read_peer_msg.h subdaemons: remove gossipd fd from per-peer daemons. 2022-02-08 11:15:52 +10:30
route.c common/blindedpay: routines to construct a blinded payment. 2022-10-26 11:29:06 +10:30
route.h common/blindedpay: routines to construct a blinded payment. 2022-10-26 11:29:06 +10:30
scb_wire.csv common: Add scb_wire for serializing the static_chan_backup 2022-07-14 12:24:48 -05:00
setup.c common: clean up autodata in common_shutdown(). 2021-11-17 10:51:48 +10:30
setup.h setup: create a common setup which will handle the wally-context 2020-05-19 13:35:42 +09:30
shutdown_scriptpubkey.c shutdown: don't allow shutdown to p2pkh or p2sh addresses for anchor outputs. 2022-04-02 09:40:18 +10:30
shutdown_scriptpubkey.h shutdown: don't allow shutdown to p2pkh or p2sh addresses for anchor outputs. 2022-04-02 09:40:18 +10:30
sphinx.c common/onion: split into decode and encode routines. 2022-11-09 15:08:03 +01:00
sphinx.h lightningd: --dev-onion-reply-length option. 2022-11-08 17:40:57 +01:00
status.c common: make sure we hand through peer for io logging. 2022-02-08 11:15:52 +10:30
status.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
status_levels.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
status_levels.h common: add routines for log level names. 2020-10-23 13:53:16 +10:30
status_wire.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
status_wire.csv cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
status_wire.h status: generate messages rather than marshal/unmarshal manually. 2018-02-08 19:07:12 +01:00
subdaemon.c connectd: do dev_disconnect logic. 2022-01-20 15:24:06 +10:30
subdaemon.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
timeout.c common: add routine for absolute timeouts (vs. relative). 2022-01-20 15:24:06 +10:30
timeout.h common: add routine for absolute timeouts (vs. relative). 2022-01-20 15:24:06 +10:30
tx_roles.h tx_roles: pull up roles, rename 2020-10-20 12:50:31 +10:30
type_to_string.c type_to_string: detect type failure in DEVELOPER mode. 2021-09-21 18:04:43 +02:00
type_to_string.h Remove point32. 2022-10-26 11:29:06 +10:30
utils.c memleak: handle libwally allocations better. 2022-03-21 10:19:50 +10:30
utils.h memleak: handle libwally allocations better. 2022-03-21 10:19:50 +10:30
utxo.c wallet: Add utxo_is_immature helper 2022-11-09 11:55:25 +01:00
utxo.h wallet: Add utxo_is_immature helper 2022-11-09 11:55:25 +01:00
version.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
version.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
wallet.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
wallet.h wallet: Add transaction annotation type 2019-10-07 20:03:24 -05:00
wire_error.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
wire_error.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
wireaddr.c common: remove unused parameter "allow_deprecated" from parse_wireaddr_internal. 2022-09-12 09:34:52 +09:30
wireaddr.h common: remove unused parameter "allow_deprecated" from parse_wireaddr_internal. 2022-09-12 09:34:52 +09:30