ecdheKeyAgreement implements a TLS key agreement where the server generates an ephemeral EC public/private key pair and signs it. The pre-master secret is then calculated using ECDH. The signature may be ECDSA, Ed25519 or RSA.
| 155 | // pre-master secret is then calculated using ECDH. The signature may |
| 156 | // be ECDSA, Ed25519 or RSA. |
| 157 | type ecdheKeyAgreement struct { |
| 158 | version uint16 |
| 159 | isRSA bool |
| 160 | params ecdheParameters |
| 161 | |
| 162 | // ckx and preMasterSecret are generated in processServerKeyExchange |
| 163 | // and returned in generateClientKeyExchange. |
| 164 | ckx *clientKeyExchangeMsg |
| 165 | preMasterSecret []byte |
| 166 | } |
| 167 | |
| 168 | func (ka *ecdheKeyAgreement) generateServerKeyExchange(config *Config, cert *Certificate, clientHello *clientHelloMsg, hello *serverHelloMsg) (*serverKeyExchangeMsg, error) { |
| 169 | var curveID CurveID |
nothing calls this directly
no outgoing calls
no test coverage detected