sendDiffileHellmanInit method
Initialize a shared-secret negotiation culminating with MSG_NEWKEYS.
Implementation
@override
void sendDiffileHellmanInit() {
initializeDiffieHellman(kexMethod, random);
if (KEX.x25519DiffieHellman(kexMethod)) {
writeClearOrEncrypted(MSG_KEX_ECDH_INIT(x25519dh.myPubKey));
} else if (KEX.ellipticCurveDiffieHellman(kexMethod)) {
writeClearOrEncrypted(MSG_KEX_ECDH_INIT(ecdh.cText));
} else if (KEX.diffieHellmanGroupExchange(kexMethod)) {
writeClearOrEncrypted(
MSG_KEX_DH_GEX_REQUEST(dh.gexMin, dh.gexMax, dh.gexPref));
} else if (KEX.diffieHellman(kexMethod)) {
writeClearOrEncrypted(MSG_KEXDH_INIT(dh.e));
} else {
throw FormatException('$hostport: unknown kex method: $kexMethod');
}
}