Matt Corallo
4a0abd52e7
Move cryptographic algorithms and utilities to a new crypto
mod
...
As we'd generally like the `lightning` crate to, over time, have
more modules rather than being very monolithic, we should move the
cryptographic things into their own module, which we do here.
We also take this opportunity to move stream adapters into their
own module and make clear that the ChaChaPoly `decrypt` method is
variable time.
2024-01-16 20:07:08 +00:00
Matt Corallo
ab66143cb6
Expose onion_message
items directly rather than via re-exports
...
When we originally added the `onion_message` module, there weren't
a lot of public items in it, and it didn't make a lot of sense to
export the whole sub-module structure publicly. So, instead, we
exported the public items via re-exports directly in the
`onion_message` top-level module. However, as time went on, more
and more things entered the module, which left the top-level module
rather cluttered.
Worse, in 0.0.119, we exposed
`onion_message::messenger::SendSuccess` via the return type of
`send_message`, but forgot to re-export the enum itself, making
it impossible to actually use from external code.
Here we address both issues and simply replace the re-export with
the underlying sub-module structure.
2024-01-10 23:50:34 +00:00
Jeffrey Czyz
edb5892030
CounterpartyForwardingInfo to PaymentRelay mapping
2023-12-15 15:40:09 -06:00
Valentine Wallace
ae08d0c86a
Make BlindedPath::new_for_payment pub
...
Because we now support receiving to multi-hop blinded paths.
2023-12-12 18:38:59 -05:00
Valentine Wallace
d2222c8224
Remove now-unused Readable impl for ReceiveTlvs
2023-11-29 22:43:12 -05:00
Valentine Wallace
47d34c3668
Support forwarding blinded HTLCs as intro node.
...
Error handling will be completed in upcoming commits.
2023-11-29 22:43:11 -05:00
Wilmer Paulino
ec928d55b4
Bump rust-bitcoin to v0.30.2
2023-11-22 15:58:01 -08:00
Matt Corallo
abee51b10c
Prefer Writeable.encode()
over VecWriter
use
...
It does the same thing and its much simpler.
2023-11-04 16:20:24 +00:00
Jeffrey Czyz
fe9044831e
Fix PaymentConstraints::max_cltv_expiry docs
2023-10-20 09:51:31 -05:00
Jeffrey Czyz
46b794e9a2
Utility for creating and sending Bolt12Invoices
...
Add a utility to ChannelManager for creating a Bolt12Invoice for a
Refund such that the ChannelManager can recognize the PaymentHash and
reconstruct the PaymentPreimage from the PaymentSecret, the latter of
which is contained in a BlindedPath within the invoice.
2023-10-20 09:49:56 -05:00
Jeffrey Czyz
80ae66ac17
Include a one-hop blinded path in Offer and Refund
...
While this doesn't add much privacy over not including any blinded
paths, it allows us to exercise code for receiving on blinded paths.
2023-10-18 18:33:14 -05:00
Jeffrey Czyz
6dc42235ba
Allow sending onion messages to 1-hop blinded path
...
This allows for specifying the introduction node as the message
recipient.
2023-10-18 18:31:27 -05:00
Valentine Wallace
ebdc4ae80a
Only allow creating 1-hop blinded paths.
...
Useful until forwarding and receiving to multi-hop blinded paths is supported.
2023-09-12 18:12:03 -04:00
Valentine Wallace
070f7e0d5c
Support receiving to 1-hop blinded payment paths.
2023-09-12 18:11:59 -04:00
Valentine Wallace
f3616e606f
Struct-ify blinded payment path intermediate node info
2023-09-08 10:43:02 -04:00
Valentine Wallace
138a5a770c
Remove unnecessary doc links
2023-09-08 10:43:02 -04:00
Valentine Wallace
d5925f210e
Fix blinded payment TLV ser to not length-prefix
...
impl_writeable_tlv_based includes a length prefix to the TLV stream, which we
don't want.
2023-09-08 10:43:02 -04:00
Valentine Wallace
10a159f71e
Derive Clone and Debug for blinded payment TLV structs
2023-09-08 10:43:02 -04:00
Valentine Wallace
aee7bb4acd
Make blinded payment TLV fields public.
...
These should've been made public when they were added for use in
BlindedPath::new_for_payment.
2023-09-08 10:43:02 -04:00
Valentine Wallace
fc0d15136e
Support aggregating htlc_maximum_msat for BlindedPayInfo
2023-09-08 10:43:02 -04:00
Valentine Wallace
02990cad80
Support aggregating htlc_minimum_msat for BlindedPayInfo
2023-09-08 10:43:02 -04:00
Valentine Wallace
ec01d7e061
Compute aggregated BlindedPayInfo in path construction
2023-09-08 10:43:01 -04:00
Valentine Wallace
911113814f
Fix BlindedPath::new_for_payment docs
2023-08-28 13:20:11 -04:00
Valentine Wallace
0ddd3cb684
Blinded paths: rename encrypted_tlvs_ss to *_rho for precision
...
The previous name can be confused for the shared secret that the rho is derived
from.
2023-08-23 11:28:42 -04:00
Valentine Wallace
76f8cc1cc6
Support constructing BlindedPaths for payments.
2023-08-23 11:28:41 -04:00
Valentine Wallace
d224f980ed
Simplify onion message blinded hop construction
...
Also adds a util for general blinded hop creation to be reused for blinded
payment paths.
2023-08-23 11:26:45 -04:00
Valentine Wallace
9777485ed7
Minor BlindedHop docs update
2023-08-22 13:26:12 -04:00
Valentine Wallace
7c1726b585
Update blinded path util to take iterator instead of slice
...
Useful for blinded payment path construction.
2023-08-22 13:26:12 -04:00
Valentine Wallace
1b356619b3
Move Padding into blinded_path module for use in blinded payments
2023-08-22 13:26:12 -04:00
Valentine Wallace
fe5a076aa6
Move blinded message path util into message submodule
2023-08-22 13:26:11 -04:00
Valentine Wallace
381cc646c6
Move some blinded path message code into message submodule.
...
We'll similarly separate blinded path payments code into its own module.
2023-08-22 13:18:42 -04:00
Valentine Wallace
a5b7cf2c69
Move blinded path util into blinded_path::utils
...
This way it can be more easily reused for blinded payment paths.
2023-08-22 13:18:42 -04:00
Valentine Wallace
ec5e837cc2
Generalize next_hop_packet_pubkey onion util
...
Useful for generating a next hop blinding point when forwarding a blinded
payment.
2023-08-19 18:55:34 -04:00
Valentine Wallace
a35b92c8c8
Fuzz test blinded payment pathfinding
2023-07-25 16:32:33 -07:00
Arik Sosman
6cb9919f0c
Move keysinterface.rs to a directory-level module called sign.
2023-05-02 21:48:08 -07:00
Valentine Wallace
ed4348f08a
Update PaymentParameters::route_hints for blinded paths
2023-04-20 10:14:17 -04:00
Valentine Wallace
e691e5077d
Update docs and method names for blinded payment paths
2023-04-20 10:14:17 -04:00
Valentine Wallace
efed905a4f
Move blinded_path and its utils into a new module
2023-04-20 10:14:15 -04:00