feat: complete CipherSuites support - share links, VMess QR code, sing-box TLS - #3
Merged
Merged
Conversation
The fork already round-trips its custom TLS fields (ech, vcn, pcs, pqv) through share-link query parameters and the VMess QR-code JSON, but CipherSuites was missing, so sharing a profile silently dropped it. Add a "cs" query parameter to BaseFmt (exported inside the TLS-only block alongside alpn, since cipherSuites is TLS-only) and a "cs" field to VmessQRCode, mapped in VmessFmt. The key matches the one used by the v2rayNG fork (patterniha/PattNG#3) so links carrying cipher suites interop between the two clients. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #1/#2, and the v2rayN counterpart of patterniha/PattNG#3. Completes
CipherSuitessupport everywhereFingerprint/Alpnare handled.What changed
Share-link / QR-code round-trip — the fork already round-trips its custom TLS fields (
ech,vcn,pcs,pqv) butCipherSuiteswas missing, so sharing a profile silently dropped it:BaseFmt.ToUriQuery: exports acsquery parameter inside the TLS-only block alongsidealpn(cipher suites don't apply to REALITY).BaseFmt.ResolveUriQuery: importscsfor all URL-based protocols.VmessQRCode+VmessFmt:csfield mapped in both directions.cskey matches the v2rayNG fork (feat: round-trip cipherSuites in share links and VMess QR code PattNG#3), so links interop between the two clients.sing-box core support — sing-box supports
cipher_suiteson outbound TLS (a list of the same Go TLS names Xray takes as a colon-separated string), so the setting no longer silently does nothing on the sing-box core:Tls4Sbox: newcipher_suitesfield.SingboxOutboundService.GenOutboundTls: maps the stored string (split on:or,) in the TLS branch only; REALITY uses uTLS where cipher suites don't apply.Notes for reviewers
ToUriQueryLite(used by Hysteria2/TUIC links, which follow their ecosystem's standard params),CompareProfileItem(excludes manual-only fields by convention), and the TUIC alpn default inConfigHandler(protocol-specific).cipher_suitesfor TLS 1.3 per its docs; that's inherent to the option.ServiceLibbuilds cleanly (0 warnings, 0 errors).🤖 Generated with Claude Code