mhsanaei 1 week ago
parent
commit
9b9746ca6b

+ 10 - 0
web/controller/server.go

@@ -55,6 +55,7 @@ func (a *ServerController) initRouter(g *gin.RouterGroup) {
 	g.POST("/getNewX25519Cert", a.getNewX25519Cert)
 	g.POST("/getNewmldsa65", a.getNewmldsa65)
 	g.POST("/getNewEchCert", a.getNewEchCert)
+	g.POST("/getNewmlkem768", a.getNewmlkem768)
 }
 
 func (a *ServerController) refreshStatus() {
@@ -266,3 +267,12 @@ func (a *ServerController) getNewEchCert(c *gin.Context) {
 	}
 	jsonObj(c, cert, nil)
 }
+
+func (a *ServerController) getNewmlkem768(c *gin.Context) {
+	out, err := a.serverService.GetNewmlkem768()
+	if err != nil {
+		jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.getNewmlkem768Error"), err)
+		return
+	}
+	jsonObj(c, out, nil)
+}

+ 10 - 0
web/html/modals/inbound_modal.html

@@ -162,6 +162,16 @@
                 inModal.inbound.stream.tls.echServerKeys = msg.obj.echServerKeys;
                 inModal.inbound.stream.tls.settings.echConfigList = msg.obj.echConfigList;
             },
+            async getNewmlkem768() {
+                inModal.loading(true);
+                const msg = await HttpUtil.post('/server/getNewmlkem768');
+                inModal.loading(false);
+                if (!msg.success) {
+                    return;
+                }
+                inModal.inbound.stream.reality.mlkem768Seed = msg.obj.seed;
+                inModal.inbound.stream.reality.settings.mlkem768Client = msg.obj.Client;
+            },
         },
     });
 

+ 26 - 0
web/service/server.go

@@ -871,3 +871,29 @@ func (s *ServerService) GetNewEchCert(sni string) (interface{}, error) {
 		"echConfigList": configList,
 	}, nil
 }
+
+func (s *ServerService) GetNewmlkem768() (any, error) {
+	// Run the command
+	cmd := exec.Command(xray.GetBinaryPath(), "mlkem768")
+	var out bytes.Buffer
+	cmd.Stdout = &out
+	err := cmd.Run()
+	if err != nil {
+		return nil, err
+	}
+
+	lines := strings.Split(out.String(), "\n")
+
+	SeedLine := strings.Split(lines[0], ":")
+	ClientLine := strings.Split(lines[1], ":")
+
+	seed := strings.TrimSpace(SeedLine[1])
+	client := strings.TrimSpace(ClientLine[1])
+
+	keyPair := map[string]any{
+		"seed":   seed,
+		"client": client,
+	}
+
+	return keyPair, nil
+}

+ 1 - 0
web/translation/translate.ar_EG.toml

@@ -266,6 +266,7 @@
 "trafficGetError" = "خطأ في الحصول على حركات المرور"
 "getNewX25519CertError" = "حدث خطأ أثناء الحصول على شهادة X25519."
 "getNewmldsa65Error" = "حدث خطاء في الحصول على mldsa65."
+"getNewmlkem768Error" = "حدث خطأ أثناء الحصول على mlkem768."
 
 [pages.inbounds.stream.general]
 "request" = "طلب"

+ 1 - 0
web/translation/translate.en_US.toml

@@ -266,6 +266,7 @@
 "trafficGetError" = "Error getting traffics."
 "getNewX25519CertError" = "Error while obtaining the X25519 certificate."
 "getNewmldsa65Error" = "Error while obtaining mldsa65."
+"getNewmlkem768Error" = "Error while obtaining mlkem768."
 
 [pages.inbounds.stream.general]
 "request" = "Request"

+ 1 - 0
web/translation/translate.es_ES.toml

@@ -266,6 +266,7 @@
 "trafficGetError" = "Error al obtener los tráficos"
 "getNewX25519CertError" = "Error al obtener el certificado X25519."
 "getNewmldsa65Error" = "Error al obtener el certificado mldsa65."
+"getNewmlkem768Error" = "Error al obtener el certificado mlkem768."
 
 [pages.inbounds.stream.general]
 "request" = "Pedido"

+ 1 - 0
web/translation/translate.fa_IR.toml

@@ -266,6 +266,7 @@
 "trafficGetError" = "خطا در دریافت ترافیک‌ها"
 "getNewX25519CertError" = "خطا در دریافت گواهی X25519."
 "getNewmldsa65Error" = "خطا در دریافت گواهی mldsa65."
+"getNewmlkem768Error" = "خطا در دریافت گواهی mlkem768."
 
 [pages.inbounds.stream.general]
 "request" = "درخواست"

+ 1 - 0
web/translation/translate.id_ID.toml

@@ -266,6 +266,7 @@
 "trafficGetError" = "Gagal mendapatkan data lalu lintas"
 "getNewX25519CertError" = "Terjadi kesalahan saat mendapatkan sertifikat X25519."
 "getNewmldsa65Error" = "Terjadi kesalahan saat mendapatkan sertifikat mldsa65."
+"getNewmlkem768Error" = "Terjadi kesalahan saat mendapatkan sertifikat mlkem768."
 
 [pages.inbounds.stream.general]
 "request" = "Permintaan"

+ 1 - 0
web/translation/translate.ja_JP.toml

@@ -266,6 +266,7 @@
 "trafficGetError" = "トラフィックの取得中にエラーが発生しました"
 "getNewX25519CertError" = "X25519証明書の取得中にエラーが発生しました。"
 "getNewmldsa65Error" = "mldsa65証明書の取得中にエラーが発生しました。"
+"getNewmlkem768Error" = "mlkem768証明書の取得中にエラーが発生しました。"
 
 [pages.inbounds.stream.general]
 "request" = "リクエスト"

+ 1 - 0
web/translation/translate.pt_BR.toml

@@ -266,6 +266,7 @@
 "trafficGetError" = "Erro ao obter tráfegos"
 "getNewX25519CertError" = "Erro ao obter o certificado X25519."
 "getNewmldsa65Error" = "Erro ao obter o certificado mldsa65."
+"getNewmlkem768Error" = "Erro ao obter o certificado mlkem768."
 
 [pages.inbounds.stream.general]
 "request" = "Requisição"

+ 1 - 0
web/translation/translate.ru_RU.toml

@@ -266,6 +266,7 @@
 "trafficGetError" = "Ошибка получения данных о трафике"
 "getNewX25519CertError" = "Ошибка при получении сертификата X25519."
 "getNewmldsa65Error" = "Ошибка при получении сертификата mldsa65."
+"getNewmlkem768Error" = "Ошибка при получении сертификата mlkem768."
 
 [pages.inbounds.stream.general]
 "request" = "Запрос"

+ 1 - 0
web/translation/translate.tr_TR.toml

@@ -266,6 +266,7 @@
 "trafficGetError" = "Trafik bilgisi alınırken hata oluştu"
 "getNewX25519CertError" = "X25519 sertifikası alınırken hata oluştu."
 "getNewmldsa65Error" = "mldsa65 sertifikası alınırken hata oluştu."
+"getNewmlkem768Error" = "mlkem768 sertifikası alınırken hata oluştu."
 
 [pages.inbounds.stream.general]
 "request" = "İstek"

+ 1 - 0
web/translation/translate.uk_UA.toml

@@ -266,6 +266,7 @@
 "trafficGetError" = "Помилка отримання даних про трафік"
 "getNewX25519CertError" = "Помилка при отриманні сертифіката X25519."
 "getNewmldsa65Error" = "Помилка при отриманні сертифіката mldsa65."
+"getNewmlkem768Error" = "Помилка при отриманні сертифіката mlkem768."
 
 [pages.inbounds.stream.general]
 "request" = "Запит"

+ 2 - 1
web/translation/translate.vi_VN.toml

@@ -265,7 +265,8 @@
 "resetInboundClientTrafficSuccess" = "Đã đặt lại lưu lượng"
 "trafficGetError" = "Lỗi khi lấy thông tin lưu lượng"
 "getNewX25519CertError" = "Lỗi khi lấy chứng chỉ X25519."
-"getNewmldsa65Error" = "Lỗi khi lấy chúng tôi mldsa65."
+"getNewmldsa65Error" = "Lỗi khi lấy chứng chỉ mldsa65."
+"getNewmlkem768Error" = "Lỗi khi lấy chứng chỉ mlkem768."
 
 [pages.inbounds.stream.general]
 "request" = "Lời yêu cầu"

+ 1 - 0
web/translation/translate.zh_CN.toml

@@ -266,6 +266,7 @@
 "trafficGetError" = "获取流量数据时出错"
 "getNewX25519CertError" = "获取X25519证书时出错。"
 "getNewmldsa65Error" = "获取mldsa65证书时出错。"
+"getNewmlkem768Error" = "获取mlkem768证书时出错。"
 
 [pages.inbounds.stream.general]
 "request" = "请求"

+ 1 - 0
web/translation/translate.zh_TW.toml

@@ -266,6 +266,7 @@
 "trafficGetError" = "取得流量資料時發生錯誤"
 "getNewX25519CertError" = "取得X25519憑證時發生錯誤。"
 "getNewmldsa65Error" = "取得mldsa65憑證時發生錯誤。"
+"getNewmlkem768Error" = "取得mlkem768憑證時發生錯誤。"
 
 [pages.inbounds.stream.general]
 "request" = "請求"