diff options
Diffstat (limited to 'web/assets')
| -rw-r--r-- | web/assets/js/model/inbound.js | 23 | ||||
| -rw-r--r-- | web/assets/js/model/outbound.js | 9 |
2 files changed, 29 insertions, 3 deletions
diff --git a/web/assets/js/model/inbound.js b/web/assets/js/model/inbound.js index 09073593..da5522a5 100644 --- a/web/assets/js/model/inbound.js +++ b/web/assets/js/model/inbound.js @@ -560,6 +560,8 @@ class TlsStreamSettings extends XrayCommonClass { enableSessionResumption = false, certificates = [new TlsStreamSettings.Cert()], alpn = [ALPN_OPTION.H2, ALPN_OPTION.HTTP1], + echServerKeys = '', + echForceQuery = 'none', settings = new TlsStreamSettings.Settings() ) { super(); @@ -573,6 +575,8 @@ class TlsStreamSettings extends XrayCommonClass { this.enableSessionResumption = enableSessionResumption; this.certs = certificates; this.alpn = alpn; + this.echServerKeys = echServerKeys; + this.echForceQuery = echForceQuery; this.settings = settings; } @@ -592,7 +596,7 @@ class TlsStreamSettings extends XrayCommonClass { } if (!ObjectUtil.isEmpty(json.settings)) { - settings = new TlsStreamSettings.Settings(json.settings.allowInsecure, json.settings.fingerprint, json.settings.serverName, json.settings.domains); + settings = new TlsStreamSettings.Settings(json.settings.allowInsecure, json.settings.fingerprint, json.settings.echConfigList); } return new TlsStreamSettings( json.serverName, @@ -605,6 +609,8 @@ class TlsStreamSettings extends XrayCommonClass { json.enableSessionResumption, certs, json.alpn, + json.echServerKeys, + json.echForceQuery, settings, ); } @@ -621,6 +627,8 @@ class TlsStreamSettings extends XrayCommonClass { enableSessionResumption: this.enableSessionResumption, certificates: TlsStreamSettings.toJsonArray(this.certs), alpn: this.alpn, + echServerKeys: this.echServerKeys, + echForceQuery: this.echForceQuery, settings: this.settings, }; } @@ -701,21 +709,25 @@ TlsStreamSettings.Settings = class extends XrayCommonClass { constructor( allowInsecure = false, fingerprint = UTLS_FINGERPRINT.UTLS_CHROME, + echConfigList = '', ) { super(); this.allowInsecure = allowInsecure; this.fingerprint = fingerprint; + this.echConfigList = echConfigList; } static fromJson(json = {}) { return new TlsStreamSettings.Settings( json.allowInsecure, json.fingerprint, + json.echConfigList, ); } toJson() { return { allowInsecure: this.allowInsecure, fingerprint: this.fingerprint, + echConfigList: this.echConfigList }; } }; @@ -1375,6 +1387,9 @@ class Inbound extends XrayCommonClass { if (!ObjectUtil.isEmpty(this.stream.tls.sni)) { params.set("sni", this.stream.tls.sni); } + if (this.stream.tls.settings.echConfigList?.length > 0) { + params.set("ech", this.stream.tls.settings.echConfigList); + } if (type == "tcp" && !ObjectUtil.isEmpty(flow)) { params.set("flow", flow); } @@ -1474,6 +1489,9 @@ class Inbound extends XrayCommonClass { if (this.stream.tls.settings.allowInsecure) { params.set("allowInsecure", "1"); } + if (this.stream.tls.settings.echConfigList?.length > 0) { + params.set("ech", this.stream.tls.settings.echConfigList); + } if (!ObjectUtil.isEmpty(this.stream.tls.sni)) { params.set("sni", this.stream.tls.sni); } @@ -1552,6 +1570,9 @@ class Inbound extends XrayCommonClass { if (this.stream.tls.settings.allowInsecure) { params.set("allowInsecure", "1"); } + if (this.stream.tls.settings.echConfigList?.length > 0) { + params.set("ech", this.stream.tls.settings.echConfigList); + } if (!ObjectUtil.isEmpty(this.stream.tls.sni)) { params.set("sni", this.stream.tls.sni); } diff --git a/web/assets/js/model/outbound.js b/web/assets/js/model/outbound.js index 03569b00..a42c400d 100644 --- a/web/assets/js/model/outbound.js +++ b/web/assets/js/model/outbound.js @@ -354,13 +354,15 @@ class TlsStreamSettings extends CommonClass { serverName = '', alpn = [], fingerprint = '', - allowInsecure = false + allowInsecure = false, + echConfigList = '', ) { super(); this.serverName = serverName; this.alpn = alpn; this.fingerprint = fingerprint; this.allowInsecure = allowInsecure; + this.echConfigList = echConfigList; } static fromJson(json = {}) { @@ -369,6 +371,7 @@ class TlsStreamSettings extends CommonClass { json.alpn, json.fingerprint, json.allowInsecure, + json.echConfigList, ); } @@ -378,6 +381,7 @@ class TlsStreamSettings extends CommonClass { alpn: this.alpn, fingerprint: this.fingerprint, allowInsecure: this.allowInsecure, + echConfigList: this.echConfigList }; } } @@ -782,7 +786,8 @@ class Outbound extends CommonClass { let alpn = url.searchParams.get('alpn'); let allowInsecure = url.searchParams.get('allowInsecure'); let sni = url.searchParams.get('sni') ?? ''; - stream.tls = new TlsStreamSettings(sni, alpn ? alpn.split(',') : [], fp, allowInsecure == 1); + let ech = url.searchParams.get('ech') ?? ''; + stream.tls = new TlsStreamSettings(sni, alpn ? alpn.split(',') : [], fp, allowInsecure == 1, ech); } if (security == 'reality') { |
