#ifndef _DUAL_CONTROL_H #define _DUAL_CONTROL_H #include #include #include #include #include "validator.h" #include "conversation.h" #include "logger.h" class dual_control_ifc { public: virtual ~dual_control_ifc() {} virtual int authenticate(pam_handle_t *handle, int flags, const std::vector &arguments ) = 0; virtual int setcred(pam_handle_t *handle, int flags, const std::vector &arguments) = 0; }; typedef std::shared_ptr dual_control; struct dual_control_configuration { validator validator; conversations conversations; logger logger; }; dual_control create_dual_control(const dual_control_configuration &configuration); #endif