Skip to content

Commit 47aa57e

Browse files
committed
Reality: add mldsa65
1 parent 5c60e2e commit 47aa57e

19 files changed

+81
-4
lines changed

sub/subJsonService.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@ func (s *SubJsonService) realityData(rData map[string]interface{}) map[string]in
263263
rltyData["show"] = false
264264
rltyData["publicKey"] = rltyClientSettings["publicKey"]
265265
rltyData["fingerprint"] = rltyClientSettings["fingerprint"]
266+
rltyData["mldsa65Verify"] = rltyClientSettings["mldsa65Verify"]
266267

267268
// Set random data
268269
rltyData["spiderX"] = "/" + random.Seq(15)

web/assets/js/model/inbound.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -732,6 +732,7 @@ class RealityStreamSettings extends XrayCommonClass {
732732
maxClientVer = '',
733733
maxTimediff = 0,
734734
shortIds = RandomUtil.randomShortIds(),
735+
mldsa65Seed = '',
735736
settings = new RealityStreamSettings.Settings()
736737
) {
737738
super();
@@ -744,6 +745,7 @@ class RealityStreamSettings extends XrayCommonClass {
744745
this.maxClientVer = maxClientVer;
745746
this.maxTimediff = maxTimediff;
746747
this.shortIds = Array.isArray(shortIds) ? shortIds.join(",") : shortIds;
748+
this.mldsa65Seed = mldsa65Seed;
747749
this.settings = settings;
748750
}
749751

@@ -754,7 +756,8 @@ class RealityStreamSettings extends XrayCommonClass {
754756
json.settings.publicKey,
755757
json.settings.fingerprint,
756758
json.settings.serverName,
757-
json.settings.spiderX
759+
json.settings.spiderX,
760+
json.settings.mldsa65Verify
758761
);
759762
}
760763
return new RealityStreamSettings(
@@ -767,6 +770,7 @@ class RealityStreamSettings extends XrayCommonClass {
767770
json.maxClientVer,
768771
json.maxTimediff,
769772
json.shortIds,
773+
json.mldsa65Seed,
770774
settings,
771775
);
772776
}
@@ -782,6 +786,7 @@ class RealityStreamSettings extends XrayCommonClass {
782786
maxClientVer: this.maxClientVer,
783787
maxTimediff: this.maxTimediff,
784788
shortIds: this.shortIds.split(","),
789+
mldsa65Seed: this.mldsa65Seed,
785790
settings: this.settings,
786791
};
787792
}
@@ -792,20 +797,23 @@ RealityStreamSettings.Settings = class extends XrayCommonClass {
792797
publicKey = '',
793798
fingerprint = UTLS_FINGERPRINT.UTLS_CHROME,
794799
serverName = '',
795-
spiderX = '/'
800+
spiderX = '/',
801+
mldsa65Verify = '',
796802
) {
797803
super();
798804
this.publicKey = publicKey;
799805
this.fingerprint = fingerprint;
800806
this.serverName = serverName;
801807
this.spiderX = spiderX;
808+
this.mldsa65Verify = mldsa65Verify;
802809
}
803810
static fromJson(json = {}) {
804811
return new RealityStreamSettings.Settings(
805812
json.publicKey,
806813
json.fingerprint,
807814
json.serverName,
808815
json.spiderX,
816+
json.mldsa65Verify
809817
);
810818
}
811819
toJson() {
@@ -814,6 +822,7 @@ RealityStreamSettings.Settings = class extends XrayCommonClass {
814822
fingerprint: this.fingerprint,
815823
serverName: this.serverName,
816824
spiderX: this.spiderX,
825+
mldsa65Verify: this.mldsa65Verify
817826
};
818827
}
819828
};

web/controller/server.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,23 @@ func (a *ServerController) initRouter(g *gin.RouterGroup) {
5050
g.GET("/getDb", a.getDb)
5151
g.POST("/importDB", a.importDB)
5252
g.POST("/getNewX25519Cert", a.getNewX25519Cert)
53+
g.POST("/getNewmldsa65", a.getNewmldsa65)
5354
g.POST("/setTunnel/:ip/:port/:user/:password", a.setTunnel)
5455
}
5556

5657
func (a *ServerController) refreshStatus() {
5758
a.lastStatus = a.serverService.GetStatus(a.lastStatus)
5859
}
5960

61+
func (a *ServerController) getNewmldsa65(c *gin.Context) {
62+
cert, err := a.serverService.GetNewmldsa65()
63+
if err != nil {
64+
jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.getNewmldsa65Error"), err)
65+
return
66+
}
67+
jsonObj(c, cert, nil)
68+
}
69+
6070
func (a *ServerController) startTask() {
6171
webServer := global.GetWebServer()
6272
c := webServer.GetCron()
@@ -125,7 +135,7 @@ func (a *ServerController) installPanel(c *gin.Context) {
125135
}
126136

127137
func (a *ServerController) setTunnel(c *gin.Context) {
128-
a.serverService.ApplyTunnel(c.Param("ip"),c.Param("port"), c.Param("user"), c.Param("password"))
138+
a.serverService.ApplyTunnel(c.Param("ip"), c.Param("port"), c.Param("user"), c.Param("password"))
129139
jsonMsg(c, I18nWeb(c, "pages.xray.tunnel.applied"), nil)
130140
}
131141

web/html/xui/form/reality_settings.html

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,14 @@
5050
<a-form-item label=" ">
5151
<a-button type="primary" icon="import" @click="getNewX25519Cert">Get New Cert</a-button>
5252
</a-form-item>
53+
<a-form-item label="mldsa65 Seed">
54+
<a-input v-model="inbound.stream.reality.mldsa65Seed"></a-input>
55+
</a-form-item>
56+
<a-form-item label="mldsa65 Verify">
57+
<a-textarea v-model="inbound.stream.reality.settings.mldsa65Verify"></a-textarea>
58+
</a-form-item>
59+
<a-form-item label=" ">
60+
<a-button type="primary" icon="import" @click="getNewmldsa65">Get New Seed</a-button>
61+
</a-form-item>
5362
</template>
5463
{{end}}

web/html/xui/inbound_modal.html

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,17 @@
136136
}
137137
inModal.inbound.stream.reality.privateKey = msg.obj.privateKey;
138138
inModal.inbound.stream.reality.settings.publicKey = msg.obj.publicKey;
139-
}
139+
},
140+
async getNewmldsa65() {
141+
inModal.loading(true);
142+
const msg = await HttpUtil.post('/server/getNewmldsa65');
143+
inModal.loading(false);
144+
if (!msg.success) {
145+
return;
146+
}
147+
inModal.inbound.stream.reality.mldsa65Seed = msg.obj.seed;
148+
inModal.inbound.stream.reality.settings.mldsa65Verify = msg.obj.verify;
149+
},
140150
},
141151
});
142152

web/service/server.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -740,3 +740,28 @@ func (s *ServerService) GetNewX25519Cert() (interface{}, error) {
740740

741741
return keyPair, nil
742742
}
743+
744+
func (s *ServerService) GetNewmldsa65() (any, error) {
745+
cmd := exec.Command(xray.GetBinaryPath(), "mldsa65")
746+
var out bytes.Buffer
747+
cmd.Stdout = &out
748+
err := cmd.Run()
749+
if err != nil {
750+
return nil, err
751+
}
752+
753+
lines := strings.Split(out.String(), "\n")
754+
755+
SeedLine := strings.Split(lines[0], ":")
756+
VerifyLine := strings.Split(lines[1], ":")
757+
758+
seed := strings.TrimSpace(SeedLine[1])
759+
verify := strings.TrimSpace(VerifyLine[1])
760+
761+
keyPair := map[string]any{
762+
"seed": seed,
763+
"verify": verify,
764+
}
765+
766+
return keyPair, nil
767+
}

web/translation/translate.ar_EG.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@
222222

223223
[pages.inbounds.toasts]
224224
"obtain" = "تم الحصول عليه"
225+
"getNewmldsa65Error" = "حدث خطاء في الحصول على mldsa65."
225226

226227
[pages.inbounds.stream.general]
227228
"request" = "طلب"

web/translation/translate.en_US.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@
213213

214214
[pages.inbounds.toasts]
215215
"obtain" = "Obtain"
216+
"getNewmldsa65Error" = "Error while obtaining mldsa65."
216217

217218
[pages.inbounds.stream.general]
218219
"request" = "Request"

web/translation/translate.es_ES.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@
212212

213213
[pages.inbounds.toasts]
214214
"obtain" = "Recibir"
215+
"getNewmldsa65Error" = "Error al obtener el certificado mldsa65."
215216

216217
[pages.inbounds.stream.general]
217218
"request" = "Pedido"

web/translation/translate.fa_IR.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@
213213

214214
[pages.inbounds.toasts]
215215
"obtain" = "فراهم‌سازی"
216+
"getNewmldsa65Error" = "خطا در دریافت گواهی mldsa65."
216217

217218
[pages.inbounds.stream.general]
218219
"request" = "درخواست"

0 commit comments

Comments
 (0)