feat(hosts): add a cipher suites override and accept custom suites

The inbound TLS form offered cipherSuites as a closed single-choice list,
but xray reads the value as a colon-separated list and accepts any name Go
knows, so several suites or one missing from the list could not be set.
Both the inbound and the new host field now use a tag picker that keeps
the stored value as the colon-joined string xray expects; old single
values open unchanged.

A host's cipher suites replace the inbound's in the JSON subscription
stream, and a blank field inherits them. Share links and Clash carry no
cipher suite parameter, so their output is unchanged.
This commit is contained in:
Sanaei
2026-09-16 11:56:20 +02:00
parent 040d01c5dc
commit 17e89db979
29 changed files with 200 additions and 17 deletions
+14
View File
@@ -2301,6 +2301,9 @@
},
"type": "array"
},
"cipherSuites": {
"type": "string"
},
"createdAt": {
"format": "int64",
"type": "integer"
@@ -2434,6 +2437,7 @@
"address",
"allowInsecure",
"alpn",
"cipherSuites",
"createdAt",
"echConfigList",
"excludeFromSubTypes",
@@ -2478,6 +2482,9 @@
},
"type": "array"
},
"cipherSuites": {
"type": "string"
},
"echConfigList": {
"type": "string"
},
@@ -2604,6 +2611,7 @@
"required": [
"allowInsecure",
"alpn",
"cipherSuites",
"echConfigList",
"excludeFromSubTypes",
"finalMask",
@@ -11268,6 +11276,7 @@
"alpn": [
""
],
"cipherSuites": "",
"echConfigList": "",
"excludeFromSubTypes": [
""
@@ -11362,6 +11371,7 @@
"alpn": [
""
],
"cipherSuites": "",
"echConfigList": "",
"excludeFromSubTypes": [
""
@@ -11459,6 +11469,7 @@
"alpn": [
""
],
"cipherSuites": "",
"echConfigList": "",
"excludeFromSubTypes": [
""
@@ -11609,6 +11620,7 @@
"alpn": [
""
],
"cipherSuites": "",
"createdAt": 0,
"echConfigList": "",
"excludeFromSubTypes": [
@@ -11730,6 +11742,7 @@
"alpn": [
""
],
"cipherSuites": "",
"createdAt": 0,
"echConfigList": "",
"excludeFromSubTypes": [
@@ -11981,6 +11994,7 @@
"alpn": [
""
],
"cipherSuites": "",
"createdAt": 0,
"echConfigList": "",
"excludeFromSubTypes": [