git.fiddlerwoaroof.com
Raw Blame History
#ifndef _PAM_H
#define _PAM_H
#include <string>
#include <vector>
#include <memory>
#include <security/pam_modules.h>

class pam_conversation
{
public:
    virtual int conv (const std::vector<const struct pam_message *> &prompts,
                      std::vector<struct pam_response *> &answers) = 0;
};
typedef std::shared_ptr<pam_conversation> pam_conversation_p;

class pam
{
public:
    virtual int get_conversation (pam_handle_t *pamh,
                                  std::shared_ptr<pam_conversation> &conversation) = 0;
};
typedef std::shared_ptr<pam> pam_p;

pam_p get_system_pam();

#endif