From 9eb1d7faf73566caa79b7765d738e3e0d4a519c9 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Tue, 12 Sep 2017 19:39:14 +0100 Subject: [PATCH] crypto/tls: skip session cache for TLS 1.3 Skip reading the session cache if TLS 1.3 is in use (the cache has no use), skip storing a session if TLS 1.3 is in use (sessionCache can still be set when TLS 1.2 is allowed). --- handshake_client.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/handshake_client.go b/handshake_client.go index 9f4d113..140dcd5 100644 --- a/handshake_client.go +++ b/handshake_client.go @@ -119,7 +119,8 @@ func (c *Conn) clientHandshake() error { var session *ClientSessionState var cacheKey string sessionCache := c.config.ClientSessionCache - if c.config.SessionTicketsDisabled { + // TLS 1.3 has no session resumption based on session tickets. + if c.config.SessionTicketsDisabled || c.config.maxVersion() >= VersionTLS13 { sessionCache = nil } @@ -177,7 +178,7 @@ func (c *Conn) clientHandshake() error { // If we had a successful handshake and hs.session is different from // the one already cached - cache a new one - if sessionCache != nil && hs.session != nil && session != hs.session { + if sessionCache != nil && hs.session != nil && session != hs.session && c.vers < VersionTLS13 { sessionCache.Put(cacheKey, hs.session) }