e56d3c56 | #ifndef _DUAL_CONTROL_H #define _DUAL_CONTROL_H #include <string> #include <memory> #include <vector> #include <security/pam_modules.h> |
caf7db60 | #include "validator.h" #include "conversation.h" |
47f9faed | #include "logger.h" |
caf7db60 | |
e56d3c56 | class dual_control_ifc { public: |
4a1812fd | virtual ~dual_control_ifc() {} |
e56d3c56 | virtual int authenticate(pam_handle_t *handle, int flags, const std::vector<const std::string> &arguments ) = 0; virtual int setcred(pam_handle_t *handle, int flags, const std::vector<const std::string> &arguments) = 0; }; |
4a1812fd | typedef std::shared_ptr<dual_control_ifc> dual_control; |
caf7db60 | struct dual_control_configuration { validator validator; conversations conversations; |
47f9faed | logger logger; |
caf7db60 | }; dual_control create_dual_control(const dual_control_configuration &configuration); |
e56d3c56 | #endif |