go/src/crypto/tls/ech.go

type echCipher

type echExtension

type echConfig

var errMalformedECHConfig

// parseECHConfigList parses a draft-ietf-tls-esni-18 ECHConfigList, returning a
// slice of parsed ECHConfigs, in the same order they were parsed, or an error
// if the list is malformed.
func parseECHConfigList(data []byte) ([]echConfig, error) {}

func pickECHConfig(list []echConfig) *echConfig {}

func pickECHCipherSuite(suites []echCipher) (echCipher, error) {}

func encodeInnerClientHello(inner *clientHelloMsg, maxNameLength int) ([]byte, error) {}

func generateOuterECHExt(id uint8, kdfID, aeadID uint16, encodedKey []byte, payload []byte) ([]byte, error) {}

func computeAndUpdateOuterECHExtension(outer, inner *clientHelloMsg, ech *echContext, useKey bool) error {}

// validDNSName is a rather rudimentary check for the validity of a DNS name.
// This is used to check if the public_name in a ECHConfig is valid when we are
// picking a config. This can be somewhat lax because even if we pick a
// valid-looking name, the DNS layer will later reject it anyway.
func validDNSName(name string) bool {}

type ECHRejectionError

func (e *ECHRejectionError) Error() string {}