question: public Type3Message ( Type2Message type2 ) { setFlags ( getDefaultFlags ( type2 ) ) ; setWorkstation ( getDefaultWorkstation ( ) ) ; String domain = getDefaultDomain ( ) ; setDomain ( domain ) ; String user = getDefaultUser ( ) ; setUser ( user ) ; String password = getDefaultPassword ( ) ; switch ( LM_COMPATIBILITY ) { case 0 : case 1 : setLMResponse ( getLMResponse ( type2 , password ) ) ; setNTResponse ( getNTResponse ( type2 , password ) ) ; break ; case 2 : byte [ ] nt = getNTResponse ( type2 , password ) ; setLMResponse ( nt ) ; setNTResponse ( nt ) ; break ; case 3 : case 4 : case 5 : byte [ ] clientChallenge = new byte [ 8 ] ; RANDOM . nextBytes ( clientChallenge ) ; setLMResponse ( getLMv2Response ( type2 , domain , user , password , clientChallenge ) ) ; break ; default : setLMResponse ( getLMResponse ( type2 , password ) ) ; setNTResponse ( getNTResponse ( type2 , password ) ) ; } }
target:  Creates a Type-3 message in response to the given Type-2 message using default values from the current environment.