upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/btfrv.cpp
diff options
context:
space:
mode:
authorbitflash-maintainer <noreply@bitflash.invalid>2026-08-26 22:43:41 +0000
committerbitflash-maintainer <noreply@bitflash.invalid>2026-08-26 22:43:41 +0000
commit3fe9280fc11bc4ceaff3bb21533224b7b3e88da7 (patch)
tree8179a95dbede51a2b3910b3c0bacae48c8c3b2d0 /src/btfrv.cpp
parentbbe04dc8c96b4c4766d2771d3438233bf82687c0 (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/btfrv.cpp')
0 files changed, 0 insertions, 0 deletions