// ekm is a closure exposed via ExportKeyingMaterial.
ekm func(label string, context []byte, length int) ([]byte, error)
+
+ // Exists only GOSTed version! ECDHE curve used during handshake.
+ HSCurve CurveID
}
// ExportKeyingMaterial returns length bytes of exported key material in a new
activeCall int32
tmp [16]byte
+
+ hsCurve CurveID
}
// Access to net.Conn methods.
} else {
state.ekm = c.ekm
}
+ state.HSCurve = c.hsCurve
return state
}
}
hs.ecdheParams = params
hs.hello.keyShares = []keyShare{{group: curveID, data: params.PublicKey()}}
+ c.hsCurve = curveID
}
hs.hello.raw = nil
c.sendAlert(alertIllegalParameter)
return errors.New("tls: server selected unsupported group")
}
+ c.hsCurve = hs.ecdheParams.CurveID()
if !hs.serverHello.selectedIdentityPresent {
return nil
}
c.serverName = hs.clientHello.serverName
+ c.hsCurve = selectedGroup
return nil
}