Update Dart fetchOhttpKeys to support https#1500
Update Dart fetchOhttpKeys to support https#1500spacebear21 wants to merge 1 commit intopayjoin:masterfrom
Conversation
Bespoke implementation of tls-in-tls proxy because it's apparently not supported by any dart native library
Coverage Report for CI Build 24814741978Coverage remained the same at 84.953%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats
💛 - Coveralls |
|
Concept ACK. This approach makes way more sense than shipping another TLS stack for one function by binding reqwest/bitreq etc. Dart bindings can own this as just one weird trick in dart, it's really not that much code surface, and we're not inventing anything new here. This is well studied protocol work that's really well understood. The one thing I'd might flag is whether/how this fingerprints requests vs any other https-in-https CONNECT client used for payjoin. |
Hmm good point... I had Claude compare each implementation and this looks like an intractable problem. Each implementation uses different request headers which would be trivial to fix, but the bigger issue is that each TLS implementation also produces a distinct fingerprint. Both the relay and directory see this fingerprint. Each library ships a different cipher suite list and ordering, TLS extensions, supported groups, etc. |
|
I think the trade-off between shipping a complete TLS stack with each integration for this one function and losing this fingerprint just for the bootstrap mechanism is one where I lean on dealing with the fingerprint. This is all the more reason to make sure caching is done properly in the reference implementation and perhaps bootstrapping properly is even documented in the spec. |
Bespoke implementation of tls-in-tls proxy because it's apparently not supported by any dart native library
Take this with a massive grain of salt, it's unreviewed uncut uncensored slop that may or may not work. Posting this draft for consideration against the alternative of restoring the bindings behind a feature flag in payjoin-ffi.
Pull Request Checklist
Please confirm the following before requesting review:
AI
in the body of this PR.