diff options
| author | bitflash-maintainer <noreply@bitflash.invalid> | 2026-08-26 22:43:41 +0000 |
|---|---|---|
| committer | bitflash-maintainer <noreply@bitflash.invalid> | 2026-08-26 22:43:41 +0000 |
| commit | 3fe9280fc11bc4ceaff3bb21533224b7b3e88da7 (patch) | |
| tree | 8179a95dbede51a2b3910b3c0bacae48c8c3b2d0 /src/test_bip32.cpp | |
| parent | bbe04dc8c96b4c4766d2771d3438233bf82687c0 (diff) | |
btfaddr: reject descriptors whose onion endpoint is not signed
Upstream 1.2.19 signs the onion endpoint only under the optional sig3, and
VerifyDescriptor treated sig3 failure as 'drop the onion, accept the rest'.
Any relay could therefore strip an onion endpoint down to a rendezvous-only
descriptor (or, under /oniononly, cut the peer off) by deleting one field.
Now an onion field must arrive with a valid sig3 over the V3 digest or the
whole descriptor is rejected. Honest 1.2.19 writers always emit both fields,
so interop is preserved. The full two-field strip still verifies -- it is
indistinguishable from a peer that never had an onion -- and needs the onion
bound into the primary sig, which only upstream can do without breaking every
1.2.18/1.2.19 verifier; reported as an upstream protocol defect.
test_btfaddr flips the two upstream checks that enshrined the soft drop and
adds unsigned-onion and full-strip cases.
Diffstat (limited to 'src/test_bip32.cpp')
0 files changed, 0 insertions, 0 deletions