Commit graph

773 commits

Author SHA1 Message Date
Matt Corallo
5801d19a69 Switch to bitcoin_hashes Hash160 in full_stack_target 2019-01-08 14:04:06 -05:00
Matt Corallo
d8dcb1a9d3 Add doc to full_stack_target 2019-01-08 14:04:06 -05:00
Matt Corallo
cdf9b4f8ba Add option to use libfuzzer sys in full_stack_target
Note that there doesn't appear to be a way to conditionally set
 #[no_main] so that has to happen manually at compile-time.
2019-01-08 14:04:06 -05:00
Matt Corallo
a5bcd5651d
Merge pull request #280 from TheBlueMatt/2018-12-no-to-remote-revoked-htlcs
Move fail-backwards up for no to-remote output claims
2019-01-05 17:07:40 -05:00
Matt Corallo
e662fa14af Fix stale comment in functional_tests after failing back async 2019-01-05 16:26:20 -05:00
Matt Corallo
913d56ecab Macro-DRY HTLC back-fails for revoked remote transaction broadcast 2019-01-05 16:24:50 -05:00
Matt Corallo
e344b0a8fe Add test_commitment_revoked_fail_backward_exhaustive no_to_remote
This tests a case we previously didn't handle correctly where we
returned early if there was no to_remote output to claim and thus
failed to fail-backwards HTLCs which were present.
2019-01-05 16:24:50 -05:00
Matt Corallo
dbbf4914ea Add dust mode to test_commitment_revoked_fail_backward_exhaustive
This tests that we fail back HTLCs that don't make it into
commitment transactions the same as we test ones that do.
2019-01-05 16:24:50 -05:00
Matt Corallo
0faf7bb094
Merge pull request #281 from ariard/harden-inbound-htlc-resolved
Harden test for logging of inbound htlc being resolved
2019-01-04 23:07:29 -05:00
Antoine Riard
cb53ae76f3 Log resolution of offered HTLC by HTLC-timeout tx 2019-01-02 21:06:04 -05:00
Matt Corallo
24577344fa Move fail-backwards up for no to-remote output claims
This fixes HTLC fail-backwards in case we haven't yet sent enough
to have a to_remote output to claim, plus some edge cases where it
could be removed due to a fee update, though hopefully that goes
away with simplified_commitment.
2018-12-31 20:26:07 -05:00
Matt Corallo
13dc1db100
Merge pull request #278 from TheBlueMatt/2018-12-fail-on-unrevoked-remote
Fail HTLC backwards on unrevoked remote commitment tx broadcast
2018-12-31 20:25:44 -05:00
Antoine Riard
93fd3e8bb9 More comments/hardening test_fail_backwards_unrevoked_remote_announce 2018-12-31 19:56:32 -05:00
Matt Corallo
608cf1c89d Fail HTLC backwards on unrevoked remote commitment tx broadcast 2018-12-31 19:56:32 -05:00
Matt Corallo
726674ddb5 Macro-out BroadcastChannelUpdate-on-channel-close in func tests 2018-12-22 07:03:17 -05:00
Matt Corallo
36954fde6e Log errors forwarding/failing HTLCs 2018-12-22 07:03:17 -05:00
Matt Corallo
ce08061518 Remove long-stale TODO 2018-12-22 07:03:17 -05:00
Matt Corallo
eb933d90f3
Merge pull request #276 from TheBlueMatt/2018-12-async-fail
Fail HTLCs backwards asynchronously
2018-12-22 07:02:41 -05:00
Matt Corallo
044edd6e86 Fail HTLCs backwards asynchronously 2018-12-21 15:17:42 -05:00
Matt Corallo
c220a5c5cf Add an enum option to pending forwards to fail backwards 2018-12-20 22:56:32 -05:00
Matt Corallo
e5c1716f5c Refactor HTLCForwardInfo into an enum in prep for delayed-fail 2018-12-20 22:56:32 -05:00
Matt Corallo
4aa814d53c macro-out a bunch of PendingHTLCsForwardable+forward calls 2018-12-20 22:56:32 -05:00
Matt Corallo
04ff26efa9 Move process_onion_failure into onion_utils 2018-12-20 22:56:32 -05:00
Matt Corallo
3bfea5b659
Merge pull request #275 from TheBlueMatt/2018-12-manager-split
Split up ChannelManager
2018-12-20 14:59:22 -05:00
Matt Corallo
28e2480c6e Drop needless mut found by rustc 1.22 2018-12-20 14:32:02 -05:00
Matt Corallo
2053edbe53 Move ChannelManager network tests into their own module 2018-12-20 14:32:02 -05:00
Matt Corallo
dcaa53d560 Move onion encryption/decryption/etc into an onion_utils module 2018-12-19 20:36:34 -05:00
Matt Corallo
6cf8158519 Drop channel_held_info which was only for the channel fuzz target 2018-12-19 20:36:34 -05:00
Matt Corallo
50ed320503
Merge pull request #270 from TheBlueMatt/2018-12-drop-rust-crypto
Drop rust-crypto for bitcoin_hashes
2018-12-19 20:35:46 -05:00
Matt Corallo
f5dc762754 trace_log more in channelmonitor 2018-12-19 20:02:36 -05:00
Matt Corallo
7ea39a13b2 Use bitcoin_hashes' fixed_time_eq, removing the rust-crypto dep 2018-12-19 20:02:36 -05:00
Matt Corallo
202c0aedcb Drop rust-crypto trait usage 2018-12-19 20:02:36 -05:00
Matt Corallo
7511a82195 Steal rust-crypto's Poly1305 implementation wholesale 2018-12-19 20:02:36 -05:00
Matt Corallo
09c7f2f641 Steal rust-crypto's ChaCha20 implementation wholesale 2018-12-19 20:02:36 -05:00
Matt Corallo
8e07259326 Use bitcoin_hashes' Ripemd160/Hash160 from rust-crypto+rust-bitcoin
Note that this requires rewriting full_stack_target tests, which
sucks, but it does let the fuzzer hit more stuff since the real
ripemd160 isn't ever actually called anymore.
2018-12-19 20:02:36 -05:00
Matt Corallo
f1e400f142 Switch Sha256 to using bitcoin_hashes and our own HKDF 2018-12-19 17:13:25 -05:00
Matt Corallo
f904690b00 Change the way channel keys are generated
This fixes a somewhat-misuse of HKDF in ChannelKeys::new_from_seed,
but much more importantly removes a use of rust-crypto's HKDF funcs
2018-12-17 23:55:38 -05:00
Matt Corallo
ec513b81df
Merge pull request #274 from TheBlueMatt/2018-12-243-review
Onion Error Handling
2018-12-17 23:33:22 -05:00
Matt Corallo
caeff85368 Update incorrect_payment_amount generation/handling for BOLT uptd
ie dont generate them as they're a really obvious privacy leak.
Luckily we were already handling them the same aside from log
printing so don't have to touch anything there. I was lazy in
updating tests but it only effects log printing, so whatever.
2018-12-17 22:57:47 -05:00
Yuntai Kyong
3f4ab940d4 Add tests for process_onion_failure return value sanity 2018-12-17 22:55:45 -05:00
Matt Corallo
8783a748bb Add test_util for overriding session privs for onion crypt 2018-12-17 22:55:45 -05:00
Matt Corallo
38702358d1 Add some additional channel-creation-broadcast-msg sanity checks 2018-12-17 22:55:45 -05:00
Matt Corallo
b7e76c5c40 Always return malformed for BADONION errors
Also be willing to forward something with a pubkey that we know is
complete garbage, but upstream will just fail that with BADONION
when they get it.

I think this is kinda intended by the spec, but it definitely needs
to be clarified.
2018-12-17 22:55:45 -05:00
Matt Corallo
7cfb09c797 Add TODO noting confusion over |20 (channel_disabled) definition 2018-12-17 22:55:45 -05:00
Yuntai Kyong
4839ef7b83 Include flags when sending channel_disabled onion errors 2018-12-17 22:55:45 -05:00
Yuntai Kyong
7a8bec750d Rewrite most of process_onion_failure 2018-12-17 22:55:45 -05:00
Yuntai Kyong
096892cefe Swap an if let for a match and add some TODO 2018-12-17 22:55:45 -05:00
Matt Corallo
077b8e8c32
Merge pull request #273 from ariard/2018-12-17-replace-by-permanent-channel-failure
Replace some unknown_next_peer by permanent_channel_failure
2018-12-17 22:55:22 -05:00
Antoine Riard
b1712eb38e Replace some unknown_next_peer by permanent_channel_failure 2018-12-17 20:47:19 -05:00
Matt Corallo
832fc4fd44
Merge pull request #269 from TheBlueMatt/2018-12-198-review
Detect HTLC-resolving on-chain actions and pass them to ChannelManager
2018-12-17 12:11:36 -05:00