|
|
@@ -121,6 +121,7 @@ type kexNIST struct{ defaultServerKEX } // Used by NIST curves; P-256, P-384 |
|
|
|
type kexX25519 struct{ defaultServerKEX } // Used by X25519 |
|
|
|
type kexSIDHp503 struct{ defaultServerKEX } // Used by SIDH/P503 |
|
|
|
type kexSIKEp503 struct{} // Used by SIKE/P503 |
|
|
|
type kexHRSS struct{} // Used by HRSS |
|
|
|
type kexHybridSIDHp503X25519 struct { |
|
|
|
defaultServerKEX |
|
|
|
classicKEX kexX25519 |
|
|
@@ -132,6 +133,11 @@ type kexHybridSIKEp503X25519 struct { |
|
|
|
pqKEX kexSIKEp503 |
|
|
|
} // Used by SIKE-ECDHE hybrid scheme |
|
|
|
|
|
|
|
type kexHybridHRSSCurve25519 struct { |
|
|
|
classicKEX kexX25519 |
|
|
|
pqKEX kexHRSS |
|
|
|
} // Used by HRSS-ECDHE hybrid scheme |
|
|
|
|
|
|
|
// Routing map for key exchange strategies |
|
|
|
var kexStrat = map[CurveID]kex{ |
|
|
|
CurveP256: &kexNIST{}, |
|
|
@@ -140,6 +146,7 @@ var kexStrat = map[CurveID]kex{ |
|
|
|
X25519: &kexX25519{}, |
|
|
|
HybridSIDHp503Curve25519: &kexHybridSIDHp503X25519{}, |
|
|
|
HybridSIKEp503Curve25519: &kexHybridSIKEp503X25519{}, |
|
|
|
HybridHRSSCurve25519: &kexHybridHRSSCurve25519{}, |
|
|
|
} |
|
|
|
|
|
|
|
func newKeySchedule13(suite *cipherSuite, config *Config, clientRandom []byte) *keySchedule13 { |
|
|
|