@staticmethod<EOL><INDENT>def _get_NTLMv2_temp(timestamp, client_challenge, target_info):<DEDENT>
resp_type = b'<STR_LIT>'<EOL>hi_resp_type = b'<STR_LIT>'<EOL>reserved1 = b'<STR_LIT:\x00>' * <NUM_LIT:2><EOL>reserved2 = b'<STR_LIT:\x00>' * <NUM_LIT:4><EOL>reserved3 = b'<STR_LIT:\x00>' * <NUM_LIT:4><EOL>reserved4 = b'<STR_LIT:\x00>' * <NUM_LIT:4><EOL>temp = resp_type<EOL>temp += hi_resp_type<EOL>temp += reserved1<EOL>temp += reserved2<EOL>temp += timestamp<EOL>temp += client_challenge<EOL>temp += reserved3<EOL>temp += target_info.pack()<EOL>temp += reserved4<EOL>return temp<EOL>
[MS-NLMP] v28.0 2016-07-14

2.2.2.7 NTLMv2_CLIENT_CHALLENGE - variable length
The NTLMv2_CLIENT_CHALLENGE structure defines the client challenge in
the AUTHENTICATE_MESSAGE. This structure is used only when NTLM v2
authentication is configured and is transported in the NTLMv2_RESPONSE
structure.

The method to create this structure is defined in 3.3.2 NTLMv2
Authentication. In this method this variable is known as the temp
value. The target_info variable corresponds to the ServerName variable
used in that documentation. This is in reality a lot more than just the
ServerName and contains the AV_PAIRS structure we need to transport
with the message like Channel Binding tokens and others. By default
this will be the target_info returned from the CHALLENGE_MESSAGE plus
MSV_AV_CHANNEL_BINDINGS if specified otherwise it is a new target_info
set with MSV_AV_TIMESTAMP to the current time.

:param timestamp: An 8-byte timestamp in windows format, 100
    nanoseconds since 1601-01-01
:param client_challenge: A random 8-byte response generated by the
`client for the AUTHENTICATE_MESSAGE
:param target_info: The target_info structure from the
    CHALLENGE_MESSAGE with the CBT attached if required
:return temp: The CLIENT_CHALLENGE structure that will be added to the
    NtChallengeResponse structure