pamsrv.h revision 6d65f4d78567cdcab9b0ab52e1f08ad054278cc7
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek/*
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek Authors:
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek Simo Sorce <ssorce@redhat.com>
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek Sumit Bose <sbose@redhat.com>
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek Copyright (C) 2009 Red Hat
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek This program is free software; you can redistribute it and/or modify
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek it under the terms of the GNU General Public License as published by
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek the Free Software Foundation; either version 3 of the License, or
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek (at your option) any later version.
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek This program is distributed in the hope that it will be useful,
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek but WITHOUT ANY WARRANTY; without even the implied warranty of
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek GNU General Public License for more details.
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek You should have received a copy of the GNU General Public License
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek along with this program. If not, see <http://www.gnu.org/licenses/>.
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek*/
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek#ifndef __PAMSRV_H__
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek#define __PAMSRV_H__
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek#include <security/pam_appl.h>
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek#include "util/util.h"
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek#include "sbus/sssd_dbus.h"
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek#include "responder/common/responder.h"
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozekstruct pam_auth_req;
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozektypedef void (pam_dp_callback_t)(struct pam_auth_req *preq);
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozekstruct pam_ctx {
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek struct resp_ctx *rctx;
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek struct sss_nc_ctx *ncache;
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek int neg_timeout;
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek};
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozekstruct pam_auth_req {
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek struct cli_ctx *cctx;
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek struct sss_domain_info *domain;
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek struct pam_data *pd;
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek pam_dp_callback_t *callback;
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek struct ldb_result *res;
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek bool check_provider;
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek void *data;
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek};
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozekstruct sss_cmd_table *get_pam_cmds(void);
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozekint pam_dp_send_req(struct pam_auth_req *preq, int timeout);
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozekint LOCAL_pam_handler(struct pam_auth_req *preq);
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek#endif /* __PAMSRV_H__ */
3f98cdc011bb4e8cd22c088f288b0bcdb6452492Jakub Hrozek