def start_kex(self):
self._generate_x()<EOL>if self.transport.server_mode:<EOL><INDENT>self.f = pow(self.G, self.x, self.P)<EOL>self.transport._expect_packet(MSG_KEXGSS_INIT)<EOL>return<EOL><DEDENT>self.e = pow(self.G, self.x, self.P)<EOL>self.gss_host = self.transport.gss_host<EOL>m = Message()<EOL>m.add_byte(c_MSG_KEXGSS_INIT)<EOL>m.add_string(self.kexgss.ssh_init_sec_context(target=self.gss_host))<EOL>m.add_mpint(self.e)<EOL>self.transport._send_message(m)<EOL>self.transport._expect_packet(<EOL>MSG_KEXGSS_HOSTKEY,<EOL>MSG_KEXGSS_CONTINUE,<EOL>MSG_KEXGSS_COMPLETE,<EOL>MSG_KEXGSS_ERROR,<EOL>)<EOL>
Start the GSS-API / SSPI Authenticated Diffie-Hellman Key Exchange.