TLS 1.3 implementation (https://tools.ietf.org/html/rfc8446)
Modified from Go TLS https://golang.org/pkg/crypto/tls/