core-lightning/lightningd
Rusty Russell f7ebbb2ec5 common: make sphinx code ignorant of payload format.
Now "raw_payload" is always the complete string (including realm or length
bytes at the front).

This has several effects:
1. We can receive an decrypt an onion which is grossly malformed.
2. We can still hand this to the htlc_accepted hook.
3. We then fail it unless the htlc_accepted accepts it manually.
4. The createonion API now takes the raw payload, and does not know
   anything about "style".

The only caveat is that the sphinx code needs to know the payload
length: we have a call for that, which simply tells it to copy the
entire onion (and treat us as the final node) if it's invalid.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2019-12-09 14:33:31 +01:00
..
test jsonrpc: Add json_add_preimage helper 2019-12-03 01:16:07 +00:00
.gitignore handshaked: remove. 2017-10-20 18:31:32 +02:00
bitcoind.c lightningd: don't start if bitcoind is behind. 2019-11-21 05:18:29 +00:00
bitcoind.h bitcoind: remove the chainparams member 2019-11-15 13:14:08 +01:00
chaintopology.c lightningd: don't start if bitcoind is behind. 2019-11-21 05:18:29 +00:00
chaintopology.h lightningd: add flag for whether we're synced, and callback infrastructure. 2019-08-10 22:09:09 +02:00
channel_control.c Spec: trivial update to latest. 2019-11-24 23:33:17 +00:00
channel_control.h API: fundchannel_cancel can cancel fundchannel process before funding broadcast 2019-09-11 17:04:14 -05:00
channel_state.h wallet: Add a final CLOSED state to channels 2019-06-30 16:41:30 +09:30
channel.c logging: remove spaces from subsystem names. 2019-11-18 04:50:22 +00:00
channel.h TAGS: reformat to fix when PRINTF_FMT() used. 2019-11-01 17:27:20 -05:00
closing_control.c lightningd: have optional node_id associated with subdaemons. 2019-11-18 04:50:22 +00:00
closing_control.h common/per_per_state: generalize lightningd/peer_comm Part 1 2019-06-04 01:29:39 +00:00
connect_control.c connectd: add network to init message 2019-11-29 21:17:08 +01:00
connect_control.h Use node_id everywhere for nodes. 2019-04-09 12:37:16 -07:00
gossip_control.c lightningd: expose/accept "style" parameter in routes. 2019-11-14 10:15:33 +01:00
gossip_control.h gossipd: get fed the blockheight from lightningd when we know it. 2019-09-25 04:01:56 +00:00
gossip_msg.c gossipd: add hop-style to nodes to mark whether they speak TLV onion. 2019-11-14 10:15:33 +01:00
gossip_msg.h common/features: only support a single feature bitset. 2019-10-11 02:52:04 +00:00
hsm_control.c bitcoind: remove the chainparams member 2019-11-15 13:14:08 +01:00
hsm_control.h Use node_id everywhere for nodes. 2019-04-09 12:37:16 -07:00
htlc_end.c TAGS: reformat to fix when PRINTF_FMT() used. 2019-11-01 17:27:20 -05:00
htlc_end.h wallet: Add received_time to htlc_in for forwarding times 2019-04-10 23:48:39 +00:00
invoice.c also return preimage on listinvoices. 2019-12-03 01:16:07 +00:00
invoice.h lightningd: check payment secret on htlc receipt. 2019-11-24 23:33:17 +00:00
io_loop_with_timers.c plugins: don't crash if getmanifest times out. 2019-07-24 16:16:53 +02:00
io_loop_with_timers.h lightningd/io_loop_with_timers.c: Move mainloop to its own source file, have chaintopology use it. 2019-05-31 17:57:10 +02:00
json_stream.c lightningd: have logging include an optional node_id for each entry. 2019-11-18 04:50:22 +00:00
json_stream.h TAGS: reformat to fix when PRINTF_FMT() used. 2019-11-01 17:27:20 -05:00
json.c Init commit to be able to create a tor static service on the fly. 2019-12-03 23:35:18 +01:00
json.h jsonrpc: Add json_add_preimage helper 2019-12-03 01:16:07 +00:00
jsonrpc.c lightningd: make sure rpc_command replacement is well-formed. 2019-12-07 21:26:31 +01:00
jsonrpc.h common/memleak: add dynamic hooks for assisting memleak. 2019-09-06 14:35:01 +02:00
lightningd.c lightningd: move basic parameter parsing into common/configdir 2019-11-23 22:42:34 +00:00
lightningd.h Init commit to be able to create a tor static service on the fly. 2019-12-03 23:35:18 +01:00
log_status.c lightningd: kill per-peer daemons if they claim a different peer id. 2019-11-18 04:50:22 +00:00
log_status.h lightningd: have logging include an optional node_id for each entry. 2019-11-18 04:50:22 +00:00
log.c log: print UNUSUAL messages before log initialization too. 2019-11-23 22:42:34 +00:00
log.h lightningd: use a simple array for less memory usage. 2019-11-18 04:50:22 +00:00
Makefile common: make sphinx code ignorant of payload format. 2019-12-09 14:33:31 +01:00
memdump.c common/memleak: add dynamic hooks for assisting memleak. 2019-09-06 14:35:01 +02:00
memdump.h lightningd: add code to search strmaps for memleak detection. 2019-02-07 20:33:50 +00:00
notification.c plugin: Another new notification type, 'sendpay_failure' 2019-09-11 00:57:39 +00:00
notification.h plugin: Another new notification type, 'sendpay_failure' 2019-09-11 00:57:39 +00:00
onchain_control.c lightningd: have optional node_id associated with subdaemons. 2019-11-18 04:50:22 +00:00
onchain_control.h onchaind: Replay stored channeltxs to restore onchaind state 2018-04-25 14:33:38 +02:00
opening_control.c lightningd: don't use chainparams before param() call in json_fund_channel_start 2019-11-23 22:42:34 +00:00
opening_control.h common/per_per_state: generalize lightningd/peer_comm Part 1 2019-06-04 01:29:39 +00:00
options.c Init commit to be able to create a tor static service on the fly. 2019-12-03 23:35:18 +01:00
options.h common: parse --allow-deprecated-apis extremely early. 2019-11-23 22:42:34 +00:00
pay.c common: make sphinx code ignorant of payload format. 2019-12-09 14:33:31 +01:00
pay.h API: Add payment fields(if not NULL) into return value when sendpay fails 2019-09-11 00:57:39 +00:00
peer_control.c lightningd: change config-dir from plugin / wallet / hsm POV into <network> subdir 2019-11-23 22:42:34 +00:00
peer_control.h lightningd: remove per-peer log book. 2019-11-18 04:50:22 +00:00
peer_htlcs.c common: make sphinx code ignorant of payload format. 2019-12-09 14:33:31 +01:00
peer_htlcs.h plugin: Register forward_event notification 2019-09-08 16:02:00 +02:00
ping.c bolt: update to BOLT spec changes (extract format + type specifications) 2019-07-16 06:10:58 +00:00
ping.h ping: complete JSON RPC ping commands even if one ping gets no response. 2018-09-14 22:11:23 +02:00
plugin_control.c plugin_control: halve the timeout delay 2019-10-11 10:05:08 -05:00
plugin_control.h plugins: cleanup shared headers between dynamic and static plugins 2019-09-30 00:20:16 +00:00
plugin_hook.c plugin: handle corner case where rpc_command is to stop the plugin. 2019-12-06 16:52:16 +01:00
plugin_hook.h lightningd/plugin_hook: make it possible to unregister a hook 2019-07-28 07:24:04 +00:00
plugin.c plugin: handle corner case where rpc_command is to stop the plugin. 2019-12-06 16:52:16 +01:00
plugin.h plugin: handle corner case where rpc_command is to stop the plugin. 2019-12-06 16:52:16 +01:00
signmessage.c lightningd: checkmessage can intuit pubkey in some cases. 2019-10-14 18:58:44 -05:00
subd.c lightningd: enable io logging on subdaemons iff we're going to print it. 2019-11-18 04:50:22 +00:00
subd.h lightningd: have optional node_id associated with subdaemons. 2019-11-18 04:50:22 +00:00
watch.c lightningd: fix occasional missing txid detection. 2019-06-28 03:31:43 +00:00
watch.h lightningd: fix occasional missing txid detection. 2019-06-28 03:31:43 +00:00