a keyAgreement implements the client and server side of a TLS key agreement protocol by generating and processing key exchange messages.
| 18 | // a keyAgreement implements the client and server side of a TLS key agreement |
| 19 | // protocol by generating and processing key exchange messages. |
| 20 | type 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 | |
| 37 | var errClientKeyExchange = errors.New("tls: invalid ClientKeyExchange message") |
| 38 | var errServerKeyExchange = errors.New("tls: invalid ServerKeyExchange message") |
no outgoing calls
no test coverage detected
searching dependent graphs…