summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pam/CMakeLists.txt12
-rw-r--r--pam/agl-identity-usbstick-pam.c36
2 files changed, 47 insertions, 1 deletions
diff --git a/pam/CMakeLists.txt b/pam/CMakeLists.txt
index 3953704..5d2de63 100644
--- a/pam/CMakeLists.txt
+++ b/pam/CMakeLists.txt
@@ -1 +1,11 @@
-add_library(agl-identity-usbstick-pam SHARED ) \ No newline at end of file
+
+# Add PAM dependency
+# FIXME: Require PAM, but it's seems there is no find_package.
+set(PAM_INCLUDE_DIR "/usr/include/")
+set(PAM_LIB "/lib64/libpam.so.0")
+include_directories(${PAM_INCLUDE_DIR})
+
+# Add the target
+add_library(agl-identity-usbstick-pam SHARED agl-identity-usbstick-pam.c)
+target_link_libraries(agl-identity-usbstick-pam ${PAM_LIB})
+set_property(TARGET agl-identity-usbstick-pam PROPERTY POSITION_IDENPENDENT_CODE ON)
diff --git a/pam/agl-identity-usbstick-pam.c b/pam/agl-identity-usbstick-pam.c
new file mode 100644
index 0000000..74b3051
--- /dev/null
+++ b/pam/agl-identity-usbstick-pam.c
@@ -0,0 +1,36 @@
+#define PAM_SM_AUTH
+#define PAM_SM_ACCOUNT
+#define PAM_SM_SESSION
+#define PAM_SM_PASSWORD
+#include <security/pam_modules.h>
+
+PAM_EXTERN int pam_sm_authenticate(pam_handle_t* pamh, int flags, int argc, const char** argv)
+{
+ return PAM_SUCCESS;
+}
+
+PAM_EXTERN int pam_sm_setcred(pam_handle_t* pamh, int flags, int argc, const char** argv)
+{
+ return PAM_SUCCESS;
+}
+
+PAM_EXTERN int pam_sm_acct_mgmt(pam_handle_t* pamh, int flags, int argc, const char** argv)
+{
+ return PAM_SUCCESS;
+}
+
+PAM_EXTERN int pam_sm_open_session(pam_handle_t* pamh, int flags, int argc, const char** argv)
+{
+ return PAM_SUCCESS;
+}
+
+PAM_EXTERN int pam_sm_close_session(pam_handle_t* pamh, int flags, int argc, const char** argv)
+{
+ return PAM_SUCCESS;
+}
+
+PAM_EXTERN int pam_sm_chauthtok(pam_handle_t* pamh, int flags, int argc, const char** argv)
+{
+ return PAM_SUCCESS;
+}
+