Skip to content

Commit d4b7b02

Browse files
author
zxlhhyccc
committed
luci-app-ssr-plus: Add resistant quantum ML-DSA-65 signature verify mechanism.
See: XTLS/Xray-core#4915
1 parent b6a39c9 commit d4b7b02

File tree

7 files changed

+716
-637
lines changed

7 files changed

+716
-637
lines changed

.github/workflows/multi-arch-test-build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ jobs:
8787
V: s
8888

8989
- name: Move created packages to project dir
90-
run: cp bin/packages/${{ matrix.arch }}/packages_ci/*.ipk . || true
90+
run: cp bin/packages/${{ matrix.arch }}/packages_ci/*.apk . || true
9191

9292
- name: Collect metadata
9393
run: |
@@ -122,7 +122,7 @@ jobs:
122122
done
123123
echo >> PKG-INFO
124124
echo Full file listing: >> PKG-INFO
125-
ls -al *.ipk >> PKG-INFO || true
125+
ls -al *.apk >> PKG-INFO || true
126126
cat PKG-INFO
127127
128128
- name: Store packages
@@ -132,7 +132,7 @@ jobs:
132132
path: |
133133
Packages
134134
Packages.*
135-
*.ipk
135+
*.apk
136136
PKG-INFO
137137
138138
- name: Store logs

luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1124,6 +1124,28 @@ if is_finded("xray") then
11241124
o:value("", translate("disable"))
11251125
o:depends({type = "v2ray", tls = true})
11261126
o:depends({type = "v2ray", reality = true})
1127+
1128+
o = s:option(Flag, "enable_mldsa65verify", translate("Enable ML-DSA-65(optional)"))
1129+
o.description = translate("This item might be an empty string.")
1130+
o.rmempty = true
1131+
o.default = "0"
1132+
o:depends({type = "v2ray", v2ray_protocol = "vless", reality = true})
1133+
1134+
o = s:option(Value, "reality_mldsa65verify", translate("ML-DSA-65 Public key"))
1135+
o.description = translate(
1136+
"<font><b>" .. translate("The client has not configured mldsa65Verify, but it will not perform the \"additional verification\" step and can still connect normally, see:") .. "</b></font>" ..
1137+
" <a href='https://github.com/XTLS/Xray-core/pull/4915' target='_blank'>" ..
1138+
"<font style='color:green'><b>" .. translate("Click to the page") .. "</b></font></a>")
1139+
o:depends("enable_mldsa65verify", true)
1140+
o.rmempty = true
1141+
o.validate = function(self, value)
1142+
-- 清理空行和多余换行
1143+
value = value:gsub("\r\n", "\n"):gsub("^[ \t]*\n", ""):gsub("\n[ \t]*$", ""):gsub("\n[ \t]*\n", "\n")
1144+
if value:sub(-1) == "\n" then
1145+
value = value:sub(1, -2)
1146+
end
1147+
return value
1148+
end
11271149
end
11281150

11291151
o = s:option(Value, "tls_host", translate("TLS Host"))

luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -550,6 +550,11 @@
550550
setElementValue('cbid.shadowsocksr.' + sid + '.reality_publickey', params.get("pbk") ? decodeURIComponent(params.get("pbk")) : "");
551551
setElementValue('cbid.shadowsocksr.' + sid + '.reality_shortid', params.get("sid") || "");
552552
setElementValue('cbid.shadowsocksr.' + sid + '.reality_spiderx', params.get("spx") ? decodeURIComponent(params.get("spx")) : "");
553+
if (params.get("pqv") && params.get("pqv").trim() !== "") {
554+
setElementValue('cbid.shadowsocksr.' + sid + '.enable_mldsa65verify', true); // 设置 enable_mldsa65verify 为 true
555+
dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.enable_mldsa65verify', event); // 触发事件
556+
setElementValue('cbid.shadowsocksr.' + sid + '.reality_mldsa65verify', params.get("pqv") || "");
557+
}
553558
}
554559
setElementValue('cbid.shadowsocksr.' + sid + '.tls_flow', params.get("flow") || "none");
555560
dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.tls_flow', event);

0 commit comments

Comments
 (0)