fix(outbound): fill encryption and pqv when importing VLESS link

The link-to-JSON importer dropped two VLESS Reality fields:

- pqv (post-quantum ML-DSA-65 verify key) was never parsed; map it back
  to realitySettings.mldsa65Verify, matching the inbound link generator.
- encryption was force-reset to 'none' in the form adapter regardless of
  the parsed value, discarding post-quantum encryption strings.

Add regression tests for both paths.
This commit is contained in:
MHSanaei
2026-06-01 17:37:54 +02:00
parent 28330e60d8
commit 13c04bb982
4 changed files with 38 additions and 1 deletions
@@ -123,7 +123,7 @@ function vlessFromWire(raw: Raw): VlessOutboundFormSettings {
port,
id,
flow,
encryption: (encryption === 'none' ? 'none' : 'none') as 'none',
encryption: encryption || 'none',
reverseTag,
reverseSniffing,
testpre: asNumber(raw.testpre, 0),
@@ -210,6 +210,7 @@ function applySecurityParams(stream: Raw, params: URLSearchParams): void {
reality.publicKey = params.get('pbk') ?? '';
reality.shortId = params.get('sid') ?? '';
reality.spiderX = params.get('spx') ?? '';
reality.mldsa65Verify = params.get('pqv') ?? '';
}
}