diff --git a/web/assets/js/model/inbound.js b/web/assets/js/model/inbound.js
index 074670a9..7fcc9ed5 100644
--- a/web/assets/js/model/inbound.js
+++ b/web/assets/js/model/inbound.js
@@ -2543,7 +2543,6 @@ Inbound.VLESSSettings = class extends Inbound.Settings {
decryption = "none",
encryption = "none",
fallbacks = [],
- selectedAuth = undefined,
testseed = [],
) {
super(protocol);
@@ -2551,7 +2550,6 @@ Inbound.VLESSSettings = class extends Inbound.Settings {
this.decryption = decryption;
this.encryption = encryption;
this.fallbacks = fallbacks;
- this.selectedAuth = selectedAuth;
this.testseed = testseed;
}
@@ -2587,7 +2585,6 @@ Inbound.VLESSSettings = class extends Inbound.Settings {
json.decryption,
json.encryption,
Inbound.VLESSSettings.Fallback.fromJson(json.fallbacks || []),
- json.selectedAuth,
testseed,
);
return obj;
@@ -2610,9 +2607,6 @@ Inbound.VLESSSettings = class extends Inbound.Settings {
if (this.fallbacks && this.fallbacks.length > 0) {
json.fallbacks = Inbound.VLESSSettings.toJsonArray(this.fallbacks);
}
- if (this.selectedAuth) {
- json.selectedAuth = this.selectedAuth;
- }
// testseed is only meaningful for the exact xtls-rprx-vision flow, and only when
// the user supplied a complete 4-positive-int array. Otherwise omit and let the
diff --git a/web/html/form/protocol/vless.html b/web/html/form/protocol/vless.html
index fd566e9d..21abc7b2 100644
--- a/web/html/form/protocol/vless.html
+++ b/web/html/form/protocol/vless.html
@@ -21,16 +21,6 @@
-
-
- None
- X25519 (not
- Post-Quantum)
- ML-KEM-768
- (Post-Quantum)
-
-
@@ -38,16 +28,20 @@
-
- Get New
- keys
+
+
+ X25519
+
+
+ ML-KEM-768
+
Clear
-
+
diff --git a/web/html/modals/inbound_info_modal.html b/web/html/modals/inbound_info_modal.html
index 8ecb59bf..cc2b734d 100644
--- a/web/html/modals/inbound_info_modal.html
+++ b/web/html/modals/inbound_info_modal.html
@@ -90,14 +90,9 @@
[[
inbound.stream.security ]]
- Authentication |
- [[
- inbound.settings.selectedAuth ? inbound.settings.selectedAuth : ''
- ]]
- {{ i18n "none" }}
-
{{ i18n "encryption" }}
- [[
+ [[
inbound.settings.encryption ? inbound.settings.encryption : ''
]]
diff --git a/web/html/modals/inbound_modal.html b/web/html/modals/inbound_modal.html
index e51524b1..df2588db 100644
--- a/web/html/modals/inbound_modal.html
+++ b/web/html/modals/inbound_modal.html
@@ -302,12 +302,11 @@
this.inbound.stream.tls.echServerKeys = "";
this.inbound.stream.tls.settings.echConfigList = "";
},
- async getNewVlessEnc() {
- const selected = inModal.inbound.settings.selectedAuth;
- if (!selected) {
- this.clearVlessEnc();
- return;
- }
+ // Pulls the requested auth block from `xray vlessenc` (which always returns
+ // both X25519 and ML-KEM-768 variants) and applies it to the inbound's
+ // decryption/encryption strings. The auth mode is implied by the resulting
+ async getNewVlessEnc(authLabel) {
+ if (!authLabel) return;
inModal.loading(true);
const msg = await HttpUtil.get("/panel/api/server/getNewVlessEnc");
@@ -318,10 +317,10 @@
}
const auths = msg.obj.auths || [];
- const block = auths.find((a) => a.label === selected);
+ const block = auths.find((a) => a.label === authLabel);
if (!block) {
- console.error("No auth block for", selected);
+ console.error("No auth block for", authLabel);
return;
}
@@ -331,7 +330,6 @@
clearVlessEnc() {
this.inbound.settings.decryption = "none";
this.inbound.settings.encryption = "none";
- this.inbound.settings.selectedAuth = undefined;
},
// Vision Seed methods - must be in Vue methods for proper template binding.
// Mirror the inModal helpers but use Vue.set so the form re-renders.