TALLOC_CTX *mem_ctx,
const DATA_BLOB request, DATA_BLOB *reply);
-NTSTATUS auth_ntlmssp_client_start(TALLOC_CTX *mem_ctx,
- const char *netbios_name,
- const char *netbios_domain,
- bool use_ntlmv2,
- struct auth_ntlmssp_state **_ans);
+NTSTATUS auth_ntlmssp_client_prepare(TALLOC_CTX *mem_ctx,
+ struct auth_ntlmssp_state **_ans);
+NTSTATUS auth_ntlmssp_client_start(struct auth_ntlmssp_state *ans);
+
#endif /* _NTLMSSP_WRAP_ */
}
sp_ctx->mech = SPNEGO_NTLMSSP;
- status = auth_ntlmssp_client_start(sp_ctx,
- lp_netbios_name(),
- lp_workgroup(),
- lp_client_ntlmv2_auth(),
+ status = auth_ntlmssp_client_prepare(sp_ctx,
&sp_ctx->mech_ctx.ntlmssp_state);
if (!NT_STATUS_IS_OK(status)) {
TALLOC_FREE(sp_ctx);
NTLMSSP_FEATURE_SEAL);
}
+ status = auth_ntlmssp_client_start(sp_ctx->mech_ctx.ntlmssp_state);
+ if (!NT_STATUS_IS_OK(status)) {
+ TALLOC_FREE(sp_ctx);
+ return status;
+ }
+
*spnego_ctx = sp_ctx;
return NT_STATUS_OK;
}
if (!es) {
return NT_STATUS_NO_MEMORY;
}
- status = auth_ntlmssp_client_start(NULL,
- lp_netbios_name(),
- lp_workgroup(),
- lp_client_ntlmv2_auth(),
- &es->s.auth_ntlmssp_state);
+ status = auth_ntlmssp_client_prepare(NULL,
+ &es->s.auth_ntlmssp_state);
if (!NT_STATUS_IS_OK(status)) {
goto fail;
}
goto fail;
}
+ if (!NT_STATUS_IS_OK(status = auth_ntlmssp_client_start(es->s.auth_ntlmssp_state))) {
+ goto fail;
+ }
+
do {
status = auth_ntlmssp_update(es->s.auth_ntlmssp_state, es->s.auth_ntlmssp_state,
blob_in, &blob_out);
return status;
}
-NTSTATUS auth_ntlmssp_client_start(TALLOC_CTX *mem_ctx,
- const char *netbios_name,
- const char *netbios_domain,
- bool use_ntlmv2,
+NTSTATUS auth_ntlmssp_client_prepare(TALLOC_CTX *mem_ctx,
struct auth_ntlmssp_state **_ans)
{
struct auth_ntlmssp_state *ans;
ans = talloc_zero(mem_ctx, struct auth_ntlmssp_state);
status = ntlmssp_client_start(ans,
- netbios_name, netbios_domain,
- use_ntlmv2, &ans->ntlmssp_state);
+ lp_netbios_name(), lp_workgroup(),
+ lp_client_ntlmv2_auth(), &ans->ntlmssp_state);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
*_ans = ans;
return NT_STATUS_OK;
}
+
+NTSTATUS auth_ntlmssp_client_start(struct auth_ntlmssp_state *ans)
+{
+ NTSTATUS status;
+
+ return NT_STATUS_OK;
+}
goto fail;
}
- status = auth_ntlmssp_client_start(result,
- lp_netbios_name(),
- lp_workgroup(),
- lp_client_ntlmv2_auth(),
- &ntlmssp_ctx);
+ status = auth_ntlmssp_client_prepare(result,
+ &ntlmssp_ctx);
if (!NT_STATUS_IS_OK(status)) {
goto fail;
}
auth_ntlmssp_want_feature(ntlmssp_ctx, NTLMSSP_FEATURE_SEAL);
}
+ status = auth_ntlmssp_client_start(ntlmssp_ctx);
+ if (!NT_STATUS_IS_OK(status)) {
+ goto fail;
+ }
+
result->auth_ctx = ntlmssp_ctx;
*presult = result;
return NT_STATUS_OK;