sendDiffileHellmanInit method

  1. @override
void sendDiffileHellmanInit()
override

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');
  }
}