void credssp_ntlmssp_init(rdpCredssp* credssp) { NTLMSSP *ntlmssp = credssp->ntlmssp; rdpSettings *settings = credssp->transport->settings; ntlmssp_set_password(ntlmssp, settings->password); ntlmssp_set_username(ntlmssp, settings->username); if (settings->domain != NULL) { if (strlen(settings->domain) > 0) { ntlmssp_set_domain(ntlmssp, settings->domain); } } else { ntlmssp_set_domain(ntlmssp, NULL); } ntlmssp_generate_client_challenge(ntlmssp); ntlmssp_generate_random_session_key(ntlmssp); ntlmssp_generate_exported_session_key(ntlmssp); ntlmssp->ntlm_v2 = 0; }
int credssp_ntlmssp_client_init(rdpCredssp* credssp) { freerdp* instance; NTLMSSP* ntlmssp = credssp->ntlmssp; rdpSettings* settings = credssp->transport->settings; instance = (freerdp*) settings->instance; if ((settings->password == NULL) || (settings->username == NULL)) { if (instance->Authenticate) { boolean proceed = instance->Authenticate(instance, &settings->username, &settings->password, &settings->domain); if (!proceed) return 0; } } if (settings->ntlm_version == 2) ntlmssp->ntlm_v2 = 1; ntlmssp_set_password(ntlmssp, settings->password); ntlmssp_set_username(ntlmssp, settings->username); if (ntlmssp->ntlm_v2) { ntlmssp_set_workstation(ntlmssp, "WORKSTATION"); } if (settings->domain != NULL) { if (strlen(settings->domain) > 0) ntlmssp_set_domain(ntlmssp, settings->domain); } else { ntlmssp_set_domain(ntlmssp, NULL); } ntlmssp_generate_client_challenge(ntlmssp); ntlmssp_generate_random_session_key(ntlmssp); ntlmssp_generate_exported_session_key(ntlmssp); return 1; }