return status;
}
-NTSTATUS winbindd_pam_auth_pac_send(struct winbindd_cli_state *state,
- struct netr_SamInfo3 **info3)
+NTSTATUS winbindd_pam_auth_pac_verify(struct winbindd_cli_state *state,
+ bool *p_is_trusted,
+ uint16_t *p_validation_level,
+ union netr_Validation **p_validation)
{
struct winbindd_request *req = state->request;
DATA_BLOB pac_blob;
bool is_trusted = false;
uint32_t i;
+ *p_is_trusted = false;
+ *p_validation_level = 0;
+ *p_validation = NULL;
+
pac_blob = data_blob_const(req->extra_data.data, req->extra_len);
result = extract_pac_vrfy_sigs(state->mem_ctx, pac_blob, &pac_data);
if (NT_STATUS_IS_OK(result)) {
}
}
- *info3 = info3_copy;
-
+ *p_is_trusted = is_trusted;
+ *p_validation_level = validation_level;
+ *p_validation = validation;
return NT_STATUS_OK;
}
#else /* HAVE_KRB5 */
-NTSTATUS winbindd_pam_auth_pac_send(struct winbindd_cli_state *state,
- struct netr_SamInfo3 **info3)
+NTSTATUS winbindd_pam_auth_pac_verify(struct winbindd_cli_state *state,
+ bool *p_is_trusted,
+ uint16_t *p_validation_level,
+ union netr_Validation **p_validation);
{
+
+ *p_is_trusted = false;
+ *p_validation_level = 0;
+ *p_validation = NULL;
return NT_STATUS_NO_SUCH_USER;
}
#endif /* HAVE_KRB5 */
state->flags = request->flags;
if (state->flags & WBFLAG_PAM_AUTH_PAC) {
- struct netr_SamInfo3 *info3 = NULL;
+ bool is_trusted = false;
uint16_t validation_level;
union netr_Validation *validation = NULL;
NTSTATUS status;
- status = winbindd_pam_auth_pac_send(cli, &info3);
+ status = winbindd_pam_auth_pac_verify(cli,
+ &is_trusted,
+ &validation_level,
+ &validation);
if (tevent_req_nterror(req, status)) {
return tevent_req_post(req, ev);
}
state->response->result = WINBINDD_PENDING;
state->response->length = sizeof(struct winbindd_response);
- status = map_info3_to_validation(talloc_tos(),
- info3,
- &validation_level,
- &validation);
- if (tevent_req_nterror(req, status)) {
- return tevent_req_post(req, ev);
- }
-
status = append_auth_data(state->response,
state->response,
state->flags,
enum winbindd_result winbindd_dual_pam_logoff(struct winbindd_domain *domain,
struct winbindd_cli_state *state) ;
enum winbindd_result winbindd_dual_pam_chng_pswd_auth_crap(struct winbindd_domain *domainSt, struct winbindd_cli_state *state);
-NTSTATUS winbindd_pam_auth_pac_send(struct winbindd_cli_state *state,
- struct netr_SamInfo3 **info3);
+NTSTATUS winbindd_pam_auth_pac_verify(struct winbindd_cli_state *state,
+ bool *p_is_trusted,
+ uint16_t *p_validation_level,
+ union netr_Validation **p_validation);
NTSTATUS winbind_dual_SamLogon(struct winbindd_domain *domain,
TALLOC_CTX *mem_ctx,