From a608c5a1dbfa59b8328ac5d0363f360b2fd3bebe Mon Sep 17 00:00:00 2001 From: yuhan6665 <1588741+yuhan6665@users.noreply.github.com> Date: Sat, 26 Apr 2025 12:00:27 -0400 Subject: [PATCH] uTLS: Add new fingerprints PSK extension, Post-Quantum Key Agreement, ML-KEM --- transport/internet/reality/reality.go | 4 ++-- transport/internet/tls/tls.go | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/transport/internet/reality/reality.go b/transport/internet/reality/reality.go index a9352aaf..0543b26d 100644 --- a/transport/internet/reality/reality.go +++ b/transport/internet/reality/reality.go @@ -137,10 +137,10 @@ func UClient(c net.Conn, config *Config, ctx context.Context, dest net.Destinati if err != nil { return nil, errors.New("REALITY: publicKey == nil") } - if uConn.HandshakeState.State13.EcdheKey == nil { + if uConn.HandshakeState.State13.KeyShareKeys.Ecdhe == nil { return nil, errors.New("Current fingerprint ", uConn.ClientHelloID.Client, uConn.ClientHelloID.Version, " does not support TLS 1.3, REALITY handshake cannot establish.") } - uConn.AuthKey, _ = uConn.HandshakeState.State13.EcdheKey.ECDH(publicKey) + uConn.AuthKey, _ = uConn.HandshakeState.State13.KeyShareKeys.Ecdhe.ECDH(publicKey) if uConn.AuthKey == nil { return nil, errors.New("REALITY: SharedKey == nil") } diff --git a/transport/internet/tls/tls.go b/transport/internet/tls/tls.go index d2d5fa74..42904be6 100644 --- a/transport/internet/tls/tls.go +++ b/transport/internet/tls/tls.go @@ -163,7 +163,7 @@ func init() { func GetFingerprint(name string) (fingerprint *utls.ClientHelloID) { if name == "" { - return &utls.HelloChrome_Auto + return &utls.HelloChrome_120 } if fingerprint = PresetFingerprints[name]; fingerprint != nil { return @@ -179,7 +179,7 @@ func GetFingerprint(name string) (fingerprint *utls.ClientHelloID) { var PresetFingerprints = map[string]*utls.ClientHelloID{ // Recommended preset options in GUI clients - "chrome": &utls.HelloChrome_Auto, + "chrome": &utls.HelloChrome_120, "firefox": &utls.HelloFirefox_Auto, "safari": &utls.HelloSafari_Auto, "ios": &utls.HelloIOS_Auto, @@ -240,4 +240,13 @@ var OtherFingerprints = map[string]*utls.ClientHelloID{ "hello360_auto": &utls.Hello360_Auto, "hello360_7_5": &utls.Hello360_7_5, "helloqq_auto": &utls.HelloQQ_Auto, + + // reality currently does not support these new fingerprints + "hellochrome_100_psk": &utls.HelloChrome_100_PSK, + "hellochrome_112_psk_shuf": &utls.HelloChrome_112_PSK_Shuf, + "hellochrome_114_padding_psk_shuf": &utls.HelloChrome_114_Padding_PSK_Shuf, + "hellochrome_115_pq": &utls.HelloChrome_115_PQ, + "hellochrome_115_pq_psk": &utls.HelloChrome_115_PQ_PSK, + "hellochrome_120_pq": &utls.HelloChrome_120_PQ, + "hellochrome_131": &utls.HelloChrome_131, }