mirror of
https://github.com/cloudflare/cloudflared.git
synced 2025-07-27 15:49:58 +00:00
TUN-7707: Use X25519Kyber768Draft00 curve when post-quantum feature is enabled
This commit is contained in:
@@ -2,6 +2,7 @@ package supervisor
|
||||
|
||||
import (
|
||||
"context"
|
||||
"crypto/tls"
|
||||
"errors"
|
||||
"net"
|
||||
"strings"
|
||||
@@ -10,6 +11,8 @@ import (
|
||||
"github.com/quic-go/quic-go"
|
||||
"github.com/rs/zerolog"
|
||||
|
||||
qtls120 "github.com/quic-go/qtls-go1-20"
|
||||
|
||||
"github.com/cloudflare/cloudflared/connection"
|
||||
"github.com/cloudflare/cloudflared/edgediscovery"
|
||||
"github.com/cloudflare/cloudflared/orchestration"
|
||||
@@ -78,6 +81,8 @@ func NewSupervisor(config *TunnelConfig, orchestrator *orchestration.Orchestrato
|
||||
|
||||
reconnectCredentialManager := newReconnectCredentialManager(connection.MetricsNamespace, connection.TunnelSubsystem, config.HAConnections)
|
||||
|
||||
registerTLSEventLogger(config.Log)
|
||||
|
||||
tracker := tunnelstate.NewConnTracker(config.Log)
|
||||
log := NewConnAwareLogger(config.Log, tracker, config.Observer)
|
||||
|
||||
@@ -336,3 +341,26 @@ func (s *Supervisor) waitForNextTunnel(index int) bool {
|
||||
func (s *Supervisor) unusedIPs() bool {
|
||||
return s.edgeIPs.AvailableAddrs() > s.config.HAConnections
|
||||
}
|
||||
|
||||
func registerTLSEventLogger(logger *zerolog.Logger) {
|
||||
qtls120.SetCFEventHandler(func(ev qtls120.CFEvent) {
|
||||
logger.Debug().Bool("handshake", ev.IsHandshake()).Str("handshake_duration", ev.Duration().String()).Str("curve", tlsCurveName(ev.KEX())).Msg("QUIC TLS event")
|
||||
})
|
||||
}
|
||||
|
||||
func tlsCurveName(curve tls.CurveID) string {
|
||||
switch curve {
|
||||
case tls.CurveP256:
|
||||
return "p256"
|
||||
case tls.CurveP384:
|
||||
return "p384"
|
||||
case tls.CurveP521:
|
||||
return "p521"
|
||||
case tls.X25519:
|
||||
return "X25519"
|
||||
case PQKex:
|
||||
return PQKexName
|
||||
default:
|
||||
return "unknown"
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user