MCPcopy Create free account
hub / github.com/XTLS/Go / keyAgreement

Interface keyAgreement

key_agreement.go:20–35  ·  view source on GitHub ↗

a keyAgreement implements the client and server side of a TLS key agreement protocol by generating and processing key exchange messages.

Source from the content-addressed store, hash-verified

18// a keyAgreement implements the client and server side of a TLS key agreement
19// protocol by generating and processing key exchange messages.
20type keyAgreement interface {
21 // On the server side, the first two methods are called in order.
22
23 // In the case that the key agreement protocol doesn't use a
24 // ServerKeyExchange message, generateServerKeyExchange can return nil,
25 // nil.
26 generateServerKeyExchange(*Config, *Certificate, *clientHelloMsg, *serverHelloMsg) (*serverKeyExchangeMsg, error)
27 processClientKeyExchange(*Config, *Certificate, *clientKeyExchangeMsg, uint16) ([]byte, error)
28
29 // On the client side, the next two methods are called in order.
30
31 // This method may not be called if the server doesn't send a
32 // ServerKeyExchange message.
33 processServerKeyExchange(*Config, *clientHelloMsg, *serverHelloMsg, *x509.Certificate, *serverKeyExchangeMsg) error
34 generateClientKeyExchange(*Config, *clientHelloMsg, *x509.Certificate) ([]byte, *clientKeyExchangeMsg, error)
35}
36
37var errClientKeyExchange = errors.New("tls: invalid ClientKeyExchange message")
38var errServerKeyExchange = errors.New("tls: invalid ServerKeyExchange message")

Callers 4

doFullHandshakeMethod · 0.65
doFullHandshakeMethod · 0.65
doFullHandshakeMethod · 0.65
doFullHandshakeMethod · 0.65

Implementers 2

rsaKeyAgreementkey_agreement.go
ecdheKeyAgreementkey_agreement.go

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…