# Who talks to whom: the key-exchange group each pairing actually negotiates (TLS 1.3, loopback) === client JDK 26 -> server JDK 26 client offered : "named groups": [x25519, secp256r1, secp384r1, secp521r1, x448, ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192] server selected: x25519 handshake complete: TLSv1.3 TLS_AES_256_GCM_SHA384 === client JDK 27 -> server JDK 27 client offered : "named groups": [X25519MLKEM768, x25519, secp256r1, secp384r1, secp521r1, x448, ffdhe2048, ffdhe3072, ffdhe4096] server selected: X25519MLKEM768 handshake complete: TLSv1.3 TLS_AES_256_GCM_SHA384 === client JDK 27 -> server JDK 26 client offered : "named groups": [X25519MLKEM768, x25519, secp256r1, secp384r1, secp521r1, x448, ffdhe2048, ffdhe3072, ffdhe4096] server selected: x25519 handshake complete: TLSv1.3 TLS_AES_256_GCM_SHA384 === client JDK 26 -> server JDK 27 client offered : "named groups": [x25519, secp256r1, secp384r1, secp521r1, x448, ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192] server selected: x25519 handshake complete: TLSv1.3 TLS_AES_256_GCM_SHA384