def get_lm_challenge_response(self):
if self._negotiate_flags &NegotiateFlags.NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY andself._ntlm_compatibility < <NUM_LIT:3>:<EOL><INDENT>response = self._get_LMv1_with_session_security_response(<EOL>self._client_challenge<EOL>)<EOL><DEDENT>elif <NUM_LIT:0> <= self._ntlm_compatibility <= <NUM_LIT:1>:<EOL><INDENT>response = self._get_LMv1_response(self._password,<EOL>self._server_challenge)<EOL><DEDENT>elif self._ntlm_compatibility == <NUM_LIT:2>:<EOL><INDENT>response, ignore_key =self._get_NTLMv1_response(self._password,<EOL>self._server_challenge)<EOL><DEDENT>else:<EOL><INDENT>"""<STR_LIT>"""<EOL>response = self._get_LMv2_response(self._user_name, self._password,<EOL>self._domain_name,<EOL>self._server_challenge,<EOL>self._client_challenge)<EOL>if self._server_target_info is not None:<EOL><INDENT>timestamp =self._server_target_info[AvId.MSV_AV_TIMESTAMP]<EOL>if timestamp is not None:<EOL><INDENT>response = b'<STR_LIT:\x00>' * <NUM_LIT><EOL><DEDENT><DEDENT><DEDENT>return response<EOL>
[MS-NLMP] v28.0 2016-07-14

3.3.1 - NTLM v1 Authentication
3.3.2 - NTLM v2 Authentication

This method returns the LmChallengeResponse key based on the
ntlm_compatibility chosen and the target_info supplied by the
CHALLENGE_MESSAGE. It is quite different from what is set in the
document as it combines the NTLMv1, NTLM2 and NTLMv2 methods into one
and calls separate methods based on the ntlm_compatibility flag chosen.

:return: response (LmChallengeResponse) - The LM response to the server
    challenge. Computed by the client