@@ -3053,6 +3053,9 @@ func generateRandomizedSpec(
30533053 points := SupportedPointsExtension {SupportedPoints : []byte {pointFormatUncompressed }}
30543054
30553055 curveIDs := []CurveID {}
3056+ if r .FlipWeightedCoin (id .Weights .CurveIDs_Append_X25519 ) && p .TLSVersMax == VersionTLS13 {
3057+ curveIDs = append (curveIDs , X25519MLKEM768 )
3058+ }
30563059 if r .FlipWeightedCoin (id .Weights .CurveIDs_Append_X25519 ) || p .TLSVersMax == VersionTLS13 {
30573060 curveIDs = append (curveIDs , X25519 )
30583061 }
@@ -3104,11 +3107,15 @@ func generateRandomizedSpec(
31043107 ks := KeyShareExtension {[]KeyShare {
31053108 {Group : X25519 }, // the key for the group will be generated later
31063109 }}
3107- if r .FlipWeightedCoin (id .Weights .FirstKeyShare_Set_CurveP256 ) {
3108- // do not ADD second keyShare because crypto/tls does not support multiple ecdheParams
3109- // TODO: add it back when they implement multiple keyShares, or implement it oursevles
3110- // ks.KeyShares = append(ks.KeyShares, KeyShare{Group: CurveP256})
3110+ if r .FlipWeightedCoin (id .Weights .FirstKeyShare_Set_CurveP256 ) { // legacy setting, not used by default
31113111 ks .KeyShares [0 ].Group = CurveP256
3112+ } else {
3113+ if r .FlipWeightedCoin (id .Weights .KeyShare_Append_RandomGroups ) {
3114+ ks .KeyShares = append (ks .KeyShares , KeyShare {Group : CurveP256 })
3115+ }
3116+ if r .FlipWeightedCoin (id .Weights .KeyShare_Append_RandomGroups ) {
3117+ ks .KeyShares = append ([]KeyShare {{Group : X25519MLKEM768 }}, ks .KeyShares ... )
3118+ }
31123119 }
31133120 pskExchangeModes := PSKKeyExchangeModesExtension {[]uint8 {pskModeDHE }}
31143121 supportedVersionsExt := SupportedVersionsExtension {
0 commit comments