yuhan6665
94aeefe820
crypto/tls: reject known extensions in disallowed handshake messages
...
Change-Id: I9f3d9f3575359fb4730e0fb278d2d6a16a6a6964
Reviewed-on: https://go-review.googlesource.com/c/go/+/804180
Reviewed-by: Carlos Amedee <carlos@golang.org >
Reviewed-by: Roland Shoemaker <roland@golang.org >
Auto-Submit: Filippo Valsorda <filippo@golang.org >
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Reviewed-by: Daniel McCarney <daniel@binaryparadox.net >
2026-09-10 23:24:37 -04:00
yuhan6665
cd92ddab44
crypto/tls: avoid overflow in parseECHConfigList
...
When parsing an ECHConfigList, length fields were previously evaluated
as a uint16. This would cause an infinite loop to occur when parsing a
65532 bytes long ECHConfig with a declared outer length header of 0.
Triggering this condition requires a payload of at least 65538 bytes. As
ECHConfigList payloads are typically delivered via protocols that limit
them to 65535 bytes (DNS HTTPS records and TLS extensions), regular
clients are safe from this issue.
Thank you to Nguyễn Hoàng Hải (facebookmark2022@gmail.com ) for reporting
this issue.
Fixes #80513
Change-Id: I8c5011d3b375c24794dd38b915bb4dc06a6a6964
Reviewed-on: https://go-review.googlesource.com/c/go/+/804040
Reviewed-by: Daniel McCarney <daniel@binaryparadox.net >
Reviewed-by: Nicholas Husin <husin@google.com >
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Reviewed-by: Roland Shoemaker <roland@golang.org >
2026-09-10 23:19:13 -04:00
yuhan6665
05238fd2b0
std: address ptrtoerror analyzer diagnostics
...
Gopls' new ptrtoerror analyzer (CL 798580) reports types E such that
both E and *E implement error and there is no clear intent as to
which one is preferred.
This CL cleans up nearly all such diagnostics in std by adding
explicit assertions such as 'var _ error = E{}'.
Two mistaken uses of scanner.Error (sans &) were fixed,
and several unnecessary embeddings of error in tests were
change to use a plain named field.
Change-Id: I1dbf4abd5750e69c34653a1cdd17fa04edfbc6e4
Reviewed-on: https://go-review.googlesource.com/c/go/+/800560
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org >
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com >
Commit-Queue: Alan Donovan <adonovan@google.com >
Auto-Submit: Alan Donovan <adonovan@google.com >
2026-09-10 23:16:49 -04:00
yuhan6665
7dba75cce3
crypto/tls: omit PSK in ECH outer client hello
...
When using ECH, do not include the PSK extension in the outer hello.
Including the PSK extension allows for a degradation in privacy, as an
on-path attacker can harvest outer client hellos, and then construct new
hellos using the PSK extension and arbitrary guessed SNI values,
replaying them to the target server. If the server rejects the PSK, the
handshake will continue, but if the PSK is accepted, the binder check
will fail.
Thanks to Coia Prant (github.com/rbqvq) for
reporting this issue.
Fixes CVE-2026-42505
Fixes #79282
Change-Id: Ib3a3c948106a57c1b07b9e61a58cbf757848be18
Reviewed-on: https://go-review.googlesource.com/c/go/+/775960
Auto-Submit: Roland Shoemaker <roland@golang.org >
TryBot-Bypass: Roland Shoemaker <roland@golang.org >
Reviewed-by: Daniel McCarney <daniel@binaryparadox.net >
Reviewed-by: Carlos Amedee <carlos@golang.org >
2026-09-10 23:12:18 -04:00
yuhan6665
e235ff1892
crypto/tls: document that ConnectionState is valid only after handshake
...
Conn.ConnectionState reports details that are only populated once the
TLS handshake has completed. Callers that read it immediately after
Accept (for example via tls.NewListener) instead observe an
unpopulated ConnectionState whose HandshakeComplete field is false.
Document this precondition on Conn.ConnectionState and point to
ConnectionState.HandshakeComplete and Conn.Handshake, which the first
Conn.Read or Conn.Write runs automatically.
Fixes #79828 .
Change-Id: Iad8a446ae45c7eb45efba6f8c1ce50fa727db989
GitHub-Last-Rev: a9ea872
GitHub-Pull-Request: #80081
Reviewed-on: https://go-review.googlesource.com/c/go/+/792720
Reviewed-by: Roland Shoemaker <roland@golang.org >
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Auto-Submit: Filippo Valsorda <filippo@golang.org >
Reviewed-by: Filippo Valsorda <filippo@golang.org >
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com >
2026-09-10 23:09:13 -04:00
yuhan6665
629fee8742
crypto/tls: only set LocalCertificate when a certificate is presented
...
ConnectionState.LocalCertificate is documented to be populated only for
connections which are not resumed. However, the TLS 1.0-1.2 server
handshake set it in processClientHello, which runs before
checkForResumption, and nothing cleared it on the abbreviated handshake
path. Resumed pre-1.3 server connections therefore reported a
certificate chain that was never presented to the peer (also visible to
VerifyConnection and WrapSession during the handshake).
Set the field in doFullHandshake, where the Certificate message is
actually written, so it is populated if and only if a chain was
presented. TLS 1.3 is unaffected because pickCertificate already returns
early for PSK resumption.
Also pin MaxVersion in TestLocalCertificate and
TestLocalCertificateResumption: they previously set only MinVersion, so
every pre-1.3 subtest silently negotiated TLS 1.3 and the broken path
had no coverage. With MaxVersion pinned, the resumption test fails
without this fix at TLS 1.0-1.2.
Verified: strengthened resumption test fails on unpatched master at TLS
1.0/1.1/1.2 and passes with the fix; full `go test crypto/tls` passes;
standalone repro from the issue prints len(LocalCertificate)=0 for
resumed TLS 1.2 connections.
Fixes #79967
Change-Id: Ic5586b05da956c619526b8ef500fcaa4c019a2f3
GitHub-Last-Rev: c2ef0f1
GitHub-Pull-Request: #79968
Reviewed-on: https://go-review.googlesource.com/c/go/+/789862
Auto-Submit: Roland Shoemaker <roland@golang.org >
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com >
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Reviewed-by: Roland Shoemaker <roland@golang.org >
2026-09-10 23:08:30 -04:00
yuhan6665
ed9b3f2b50
crypto/tls: update ECH specification reference
...
draft-ietf-tls-esni has become RFC 9849, and the ECHConfigList structure
is unchanged.
Change-Id: Iccf05dc60206716e7d8062145955378f3df6b8e6
Reviewed-on: https://go-review.googlesource.com/c/go/+/790302
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com >
Auto-Submit: Daniel McCarney <daniel@binaryparadox.net >
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Reviewed-by: Roland Shoemaker <roland@golang.org >
2026-09-10 23:06:20 -04:00
yuhan6665
addbbfc438
crypto/tls: skip unnecessary type conversion
...
Both ec.raw and the assigned enc are []byte and don't require an
explicit conversion.
Change-Id: I2f0e7c161b653269ee450fefe5a49fc9e9e42fd2
Reviewed-on: https://go-review.googlesource.com/c/go/+/790301
Auto-Submit: Daniel McCarney <daniel@binaryparadox.net >
Reviewed-by: Roland Shoemaker <roland@golang.org >
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com >
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
2026-09-10 23:05:36 -04:00
yuhan6665
ed6f4f7375
crypto/tls: add LocalCertificate to ConnectionState
...
Adds a new field to ConnectionState, LocalCertificate, which contains
the certificate chain which was presented to the connection peer, if one
was.
Fixes #24673
Change-Id: Iae758fef4a2808e3295324890f4b2f55c71fcc4c
Reviewed-on: https://go-review.googlesource.com/c/go/+/788866
Auto-Submit: Roland Shoemaker <roland@golang.org >
Reviewed-by: Cherry Mui <cherryyz@google.com >
TryBot-Bypass: Roland Shoemaker <roland@golang.org >
Reviewed-by: Daniel McCarney <daniel@binaryparadox.net >
2026-09-10 23:04:52 -04:00
yuhan6665
b0f1538eb8
crypto/tls: update EncryptedClientHelloKey.Config KEM docs
...
The EncryptedClientHelloKey.Config struct field documented a list of
acceptable KEMs, but didn't include the recently added PQ options (pure
ML-KEM, or ML-KEM hybrids).
The ECH config processing in crypto/tls dispatches through
kem.NewKEM(id) with the config's KEM id. Since the PQ KEM ids
are supported there, this commit adds them to the
EncryptedClientHelloKey doc string as acceptable KEM choices for ECH
configs.
Change-Id: I87e81e90aedaa90d7be2a4f795f4250c8bc15525
Reviewed-on: https://go-review.googlesource.com/c/go/+/788920
Reviewed-by: Roland Shoemaker <roland@golang.org >
Auto-Submit: Daniel McCarney <daniel@binaryparadox.net >
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Reviewed-by: Cherry Mui <cherryyz@google.com >
2026-09-10 22:58:27 -04:00
yuhan6665
ff518ab8eb
crypto/tls: wrap KeyLogWriter errors w/ prefix
...
If a tls.Config populates a KeyLogWriter, and the io.Writer's Write()
returns an error when using it in writeKeyLog() we should wrap the error
with a prefix that indicates the source to aid in debugging.
Fixes #79392
Change-Id: Ie16bb2908575123a8e80c623a15f3835a7bc3e92
Reviewed-on: https://go-review.googlesource.com/c/go/+/784740
Reviewed-by: Roland Shoemaker <roland@golang.org >
Auto-Submit: Daniel McCarney <daniel@binaryparadox.net >
Reviewed-by: Neal Patel <neal@golang.org >
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Reviewed-by: Neal Patel <nealpatel@google.com >
2026-09-10 22:57:20 -04:00
yuhan6665
0b8071916e
crypto/tls: clamp effective minimum version to TLS 1.3 when using QUIC
...
Change-Id: Ieec72362bacf1956a2bd5e0b2eb8dad88e624bd1
Reviewed-on: https://go-review.googlesource.com/c/go/+/745980
Reviewed-by: Damien Neil <dneil@google.com >
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Reviewed-by: Roland Shoemaker <roland@golang.org >
2026-09-10 22:56:11 -04:00
yuhan6665
8ea3928df4
crypto/tls: surface private key parsing error from X509KeyPair
...
This can include e.g. an error that mentiones that ML-DSA is not
available due to the FIPS 140-3 module version.
Change-Id: I6f505d9baff80fee23edf6f8e995dd846a6a6964
Reviewed-on: https://go-review.googlesource.com/c/go/+/777881
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com >
Reviewed-by: Daniel McCarney <daniel@binaryparadox.net >
Auto-Submit: Filippo Valsorda <filippo@golang.org >
Reviewed-by: Roland Shoemaker <roland@golang.org >
2026-09-10 22:48:34 -04:00
yuhan6665
85935957e6
crypto/tls: remove the x509keypairleaf GODEBUG setting
...
Fixes #75316
Change-Id: I241af97bf6a05e94f40a9f62393ed4fe6a6a6964
Reviewed-on: https://go-review.googlesource.com/c/go/+/777384
Reviewed-by: David Chase <drchase@google.com >
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Reviewed-by: Roland Shoemaker <roland@golang.org >
Auto-Submit: Filippo Valsorda <filippo@golang.org >
2026-09-10 22:45:51 -04:00
yuhan6665
d1f34ca08f
crypto/tls: remove the tls10server GODEBUG setting
...
Updates #75316
Change-Id: I43e7311777fb79b9486a05c8e8d3a42e6a6a6964
Reviewed-on: https://go-review.googlesource.com/c/go/+/777383
Auto-Submit: Filippo Valsorda <filippo@golang.org >
Reviewed-by: Roland Shoemaker <roland@golang.org >
Reviewed-by: David Chase <drchase@google.com >
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
2026-09-10 22:42:59 -04:00
yuhan6665
168007d277
crypto/tls: remove tls3des GODEBUG setting
...
Updates #75316
Change-Id: Iedd2a6746d0ebd6a7b7147f34cb7435b6a6a6964
Reviewed-on: https://go-review.googlesource.com/c/go/+/777382
TryBot-Bypass: Filippo Valsorda <filippo@golang.org >
Reviewed-by: David Chase <drchase@google.com >
Reviewed-by: Roland Shoemaker <roland@golang.org >
Auto-Submit: Filippo Valsorda <filippo@golang.org >
2026-09-10 22:37:34 -04:00
yuhan6665
cd6a48fe6a
crypto/tls: remove tlsrsakex GODEBUG setting
...
Updates #75316
Change-Id: I6eb8482505a83b8b63edcb7d443e227a6a6a6964
Reviewed-on: https://go-review.googlesource.com/c/go/+/777381
Auto-Submit: Filippo Valsorda <filippo@golang.org >
Reviewed-by: David Chase <drchase@google.com >
Reviewed-by: Roland Shoemaker <roland@golang.org >
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
2026-09-10 22:34:17 -04:00
yuhan6665
5f5c7a1144
crypto/tls: remove the tlsunsafeekm GODEBUG setting
...
Updates #75316
Change-Id: I2efa3e485653f5b403d92e5d99959e356a6a6964
Reviewed-on: https://go-review.googlesource.com/c/go/+/777380
Reviewed-by: Roland Shoemaker <roland@golang.org >
Auto-Submit: Filippo Valsorda <filippo@golang.org >
Reviewed-by: David Chase <drchase@google.com >
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
2026-09-10 22:25:08 -04:00
yuhan6665
72e1a2490a
crypto/tls: implement MLKEM1024 key exchange
...
Fixes #78543
Change-Id: I26a70a64665c75e5116b83f73a75093f6a6a6964
Reviewed-on: https://go-review.googlesource.com/c/go/+/777221
Reviewed-by: David Chase <drchase@google.com >
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Auto-Submit: Filippo Valsorda <filippo@golang.org >
Reviewed-by: Roland Shoemaker <roland@golang.org >
2026-09-10 22:11:48 -04:00
yuhan6665
a18db620ec
crypto/tls: use mlkem.GenerateKey for ML-KEM hybrids
...
We were using mlkem.NewDecapsulationKey on a random slice to support
Config.Rand, but Encapsulate was already bypassing Config.Rand anyway.
Config.Rand is deprecated anyway in favor of
cryptotest.SetDefaultRandom, so switch to mlkem.GenerateKey which has
better FIPS 140-3 compliance.
Updates #79367
Change-Id: I62a5099bd69a1ee2941d5ae1c9c2bf4b6a6a6964
Reviewed-on: https://go-review.googlesource.com/c/go/+/777320
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Auto-Submit: Filippo Valsorda <filippo@golang.org >
Reviewed-by: Roland Shoemaker <roland@golang.org >
Reviewed-by: David Chase <drchase@google.com >
2026-09-10 22:02:08 -04:00
yuhan6665
46c9a6be96
crypto/tls: deprecate Config.Rand
...
We now use SetGlobalRandom in recorded tests.
It was already partially ineffective: ML-KEM encapsulation, used as part
of X25519MLKEM768, doesn't take a source of randomness, and instead
always uses the global random source.
Fixes #79367
Change-Id: I1cc07ebec21bee32ece685efde188c0d6a6a6964
Reviewed-on: https://go-review.googlesource.com/c/go/+/765926
Auto-Submit: Filippo Valsorda <filippo@golang.org >
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Reviewed-by: Roland Shoemaker <roland@golang.org >
Reviewed-by: David Chase <drchase@google.com >
2026-09-10 21:56:24 -04:00
yuhan6665
de0813ca88
crypto/tls: let Config.CurvePreferences override GODEBUG options
...
tlsmlkem=0 and tlssecpmlkem=0 were never meant to forcibly disable PQ
KEMs, they were only meant to restore the Go 1.24 and Go 1.26 defaults
when Config.CurvePreferences is nil.
I noticed this while struggling to add a non-default key exchange.
While at it, make our behavior on unimplemented Config.CurvePreferences
entries more consistent by ignoring them regardless of role.
Udpates #69985
Updates #71206
Change-Id: I7d977282153b1d95fdb549efa92353e86a6a6964
Reviewed-on: https://go-review.googlesource.com/c/go/+/777220
Auto-Submit: Filippo Valsorda <filippo@golang.org >
Reviewed-by: Roland Shoemaker <roland@golang.org >
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Reviewed-by: David Chase <drchase@google.com >
2026-09-10 21:54:16 -04:00
yuhan6665
5dabb073f8
Sync upstream Go 1.27 ( #30 )
...
https://github.com/XTLS/REALITY/pull/30#issuecomment-5579024460
2026-09-10 01:18:53 +00:00
RPRX
8cdf7bf9c7
REALITY protocol: Reject outdated/strange Client Hello that doesn't have X25519MLKEM768 before optional X25519
...
https://github.com/XTLS/Xray-core/issues/6714#issuecomment-5575338614
2026-09-08 06:21:03 +00:00
hexonal and 风扇滑翔翼
e1986a4d31
fix: DetectPostHandshakeRecordsLens background probe bugs (panic, leak, race) ( #36 )
...
Co-authored-by: 风扇滑翔翼 <Fangliding.fshxy@outlook.com >
2026-09-08 04:58:12 +00:00
fan yang
393f8de3ee
Increase REALITY target TLS record buffer to 17 KiB ( #33 )
...
Fixes https://github.com/XTLS/Xray-core/issues/6356
2026-09-08 04:29:18 +00:00
风扇滑翔翼
9234c772ba
Add maxUselessRecords (ChangeCipherSpec, etc.) detection ( #29 )
...
https://github.com/XTLS/BBS/issues/16
https://github.com/XTLS/BBS/issues/19
2026-03-22 12:59:25 +00:00
易安
ad4fbafc4b
fix(record_detect): use configured network type instead of hardcoded tcp ( #26 )
...
Fixes https://github.com/XTLS/Xray-core/issues/5675
2026-03-21 14:01:11 +00:00
风扇滑翔翼
cd53f7d502
Close target when client closed
2025-11-16 12:55:10 -05:00
Jesus and RPRX
e4eec45205
Add detailed error reporting for REALITY invalid connections ( #24 )
...
Co-authored-by: RPRX <63339210+RPRX@users.noreply.github.com >
2025-10-14 19:56:29 +00:00
RPRX
dab26e77fc
go.mod & go.sum: Upgrade direct dependencies
...
github.com/refraction-networking/utls v1.8.1
golang.org/x/crypto v0.43.0
golang.org/x/sys v0.37.0
2025-10-14 19:45:36 +00:00
RPRX
431b6ff8c6
README.md: Update Donation & NFTs
2025-09-04 21:47:05 +00:00
RPRX
046fad5ab6
README.md: Update Donation & NFTs
...
Announcement of NFTs by Project X: https://github.com/XTLS/Xray-core/discussions/3633
Project X NFT: https://opensea.io/assets/ethereum/0x5ee362866001613093361eb8569d59c4141b76d1/1
VLESS Post-Quantum Encryption: https://github.com/XTLS/Xray-core/pull/5067
VLESS NFT: https://opensea.io/collection/vless
XHTTP: Beyond REALITY: https://github.com/XTLS/Xray-core/discussions/4113
REALITY NFT: https://opensea.io/assets/ethereum/0x5ee362866001613093361eb8569d59c4141b76d1/2
2025-08-28 04:45:27 +00:00
yuhan6665
de3bb4d08f
Update readme
2025-07-27 19:10:20 -04:00
RPRX
5b52a03d4f
Fix sending Server Hello in an unexpected way for fixing edge cases
...
https://t.me/projectXray/4377580
2025-07-25 14:20:56 +00:00
RPRX
c6320729d9
README.md: Add REALITY NFT's image & link
...
https://opensea.io/item/ethereum/0x5ee362866001613093361eb8569d59c4141b76d1/2
2025-07-23 12:10:14 +00:00
RPRX
00881f6740
README.md: Add "mldsa65Seed" and "mldsa65Verify" to example
...
https://github.com/XTLS/Xray-core/pull/4915
2025-07-23 02:23:38 +00:00
RPRX
4eaf7927f3
REALITY protocol: Add optional Post-Quantum ML-DSA-65 signature to cert's ExtraExtensions
2025-07-22 04:56:54 +00:00
RPRX
ebbbf46ec3
REALITY protocol: Use X25519MLKEM768's data if X25519 doesn't exist in Client Hello
2025-07-22 04:56:14 +00:00
RPRX
05a351a645
Three types of ALPN for post-handshake records detection & imitation
...
https://github.com/XTLS/Xray-core/issues/4778#issuecomment-3072047745
2025-07-15 05:57:25 +00:00
RPRX
e62c4aed0d
Refactor post-handshake records detection & imitation again
...
https://github.com/XTLS/Xray-core/issues/4843#issuecomment-3013196642
2025-06-27 14:14:58 +00:00
wyx2685
dc28cce21c
Fix missing config.Show check before printing len(postHandshakeRecord) ( #18 )
2025-06-27 11:39:29 +00:00
50752aec6b
Some small changes
...
https://github.com/XTLS/REALITY/pull/10
https://github.com/XTLS/REALITY/pull/11
---------
Co-authored-by: Jes Cok <xigua67damn@gmail.com >
Co-authored-by: caikun233 <69567735+caikun233@users.noreply.github.com >
2025-06-08 13:21:14 +00:00
Meow and RPRX
4fd34dd4eb
feat: Add rate limiting to fallback handling via token bucket ( #12 )
...
Co-authored-by: RPRX <63339210+RPRX@users.noreply.github.com >
2025-06-08 13:11:45 +00:00
RPRX
90e738a94c
Refine GlobalPostHandshakeRecordsLens' locker
...
https://github.com/XTLS/Xray-core/issues/4778#issuecomment-2952303176
2025-06-07 10:56:25 +00:00
RPRX
88910695ec
Use Chrome's fingerprint to trigger target's post-handshake records
...
https://github.com/XTLS/Xray-core/issues/4778#issuecomment-2952140234
2025-06-07 08:21:47 +00:00
RPRX
21af070492
Refactor post-handshake records detection & imitation
...
https://github.com/XTLS/Xray-core/issues/4778#issuecomment-2948185205
2025-06-06 06:46:02 +00:00
风扇滑翔翼
967adadcc7
Add post-handshake records detection ( #17 )
2025-06-06 01:44:11 +00:00
yuhan6665
e679ef7bb1
crypto/tls: signature_algorithms in CertificateRequest can't be empty
...
Change-Id: I6a6a4656ab97e1f247df35b2589cd73461b4ac76
Reviewed-on: https://go-review.googlesource.com/c/go/+/675917
Auto-Submit: Filippo Valsorda <filippo@golang.org >
Reviewed-by: David Chase <drchase@google.com >
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com >
Reviewed-by: Daniel McCarney <daniel@binaryparadox.net >
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
2025-05-26 20:01:05 -04:00
yuhan6665
c169f1395b
crypto/tls: reject duplicate TLS 1.3 EncryptedExtensions
...
When a TLS 1.3 client processes the server's encryptedExtensionsMsg it
should reject instances that contain duplicate extension types.
RFC 8446 §4.2 says:
There MUST NOT be more than one extension of the same type in a given
extension block.
This update matches enforcement done in the client hello unmarshalling,
but applied to the TLS 1.3 encrypted extensions message unmarshalling.
Making this change also allows enabling the
DuplicateExtensionClient-TLS-TLS13 BoGo test.
Updates #72006
Change-Id: I27a2cd231e4b8762b0d9e2dbd3d8ddd5b87fd5d2
Reviewed-on: https://go-review.googlesource.com/c/go/+/673757
Reviewed-by: David Chase <drchase@google.com >
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Auto-Submit: Daniel McCarney <daniel@binaryparadox.net >
Reviewed-by: Filippo Valsorda <filippo@golang.org >
Reviewed-by: Roland Shoemaker <roland@golang.org >
2025-05-26 20:01:05 -04:00