Commit 417230a
committed
Verify the holder provided valid witnesses and uses SIGHASH_ALL
LDK checks the following:
* Each input spends an output that is one of P2WPKH, P2WSH, or P2TR.
These were already checked by LDK when the inputs to be contributed
were provided.
* All signatures use the `SIGHASH_ALL` sighash type.
* P2WPKH and P2TR key path spends are valid (verifies signatures)
NOTE:
* When checking P2WSH spends, LDK tries to decode 70-72 byte witness
elements as ECDSA signatures with a sighash flag. If the internal
DER-decoding fails, then LDK just assumes it wasn't a signature and
carries with checks. If the element can be decoded as an ECDSA
signature, the the sighash flag must be `SIGHASH_ALL`.
* When checking P2TR script-path spends, LDK assumes all elements of
exactly 65 bytes with the last byte matching any valid sighash flag
byte are schnorr signatures and checks that the sighash type is
`SIGHASH_ALL`. If the last byte is not any valid sighash flag, the
element is assumed not to be a signature and is ignored. Elements of
64 bytes are not checked because if they were schnorr signatures then
they would implicitly be `SIGHASH_DEFAULT` which is an alias of
`SIGHASH_ALL`.1 parent ede3b09 commit 417230a
File tree
3 files changed
+555
-32
lines changed- lightning/src/ln
3 files changed
+555
-32
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7625 | 7625 | | |
7626 | 7626 | | |
7627 | 7627 | | |
7628 | | - | |
7629 | | - | |
7630 | | - | |
7631 | | - | |
7632 | | - | |
| 7628 | + | |
| 7629 | + | |
| 7630 | + | |
| 7631 | + | |
| 7632 | + | |
| 7633 | + | |
7633 | 7634 | | |
7634 | 7635 | | |
7635 | 7636 | | |
| |||
7638 | 7639 | | |
7639 | 7640 | | |
7640 | 7641 | | |
7641 | | - | |
7642 | 7642 | | |
| 7643 | + | |
7643 | 7644 | | |
7644 | 7645 | | |
7645 | 7646 | | |
7646 | 7647 | | |
7647 | 7648 | | |
7648 | | - | |
| 7649 | + | |
| 7650 | + | |
| 7651 | + | |
| 7652 | + | |
| 7653 | + | |
| 7654 | + | |
| 7655 | + | |
| 7656 | + | |
7649 | 7657 | | |
7650 | 7658 | | |
7651 | 7659 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5899 | 5899 | | |
5900 | 5900 | | |
5901 | 5901 | | |
5902 | | - | |
5903 | | - | |
5904 | | - | |
5905 | | - | |
5906 | | - | |
5907 | | - | |
5908 | | - | |
| 5902 | + | |
| 5903 | + | |
| 5904 | + | |
| 5905 | + | |
| 5906 | + | |
| 5907 | + | |
| 5908 | + | |
| 5909 | + | |
| 5910 | + | |
| 5911 | + | |
| 5912 | + | |
| 5913 | + | |
| 5914 | + | |
| 5915 | + | |
| 5916 | + | |
| 5917 | + | |
| 5918 | + | |
| 5919 | + | |
| 5920 | + | |
| 5921 | + | |
5909 | 5922 | | |
5910 | 5923 | | |
5911 | 5924 | | |
5912 | 5925 | | |
5913 | 5926 | | |
5914 | | - | |
| 5927 | + | |
5915 | 5928 | | |
5916 | 5929 | | |
5917 | 5930 | | |
| |||
0 commit comments