-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpam_wrapper.c
More file actions
25 lines (21 loc) · 884 Bytes
/
pam_wrapper.c
File metadata and controls
25 lines (21 loc) · 884 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// pam_wrapper.c
#include <security/pam_appl.h>
#include <security/pam_modules.h>
// Go-eksporterede symboler (cgo genererer dem)
extern int pam_sm_authenticate_go(pam_handle_t *pamh, int flags, int argc, char **argv);
extern int pam_sm_acct_mgmt_go(pam_handle_t *pamh, int flags, int argc, char **argv);
// Hjælper bruges af Go-koden
const char* get_pam_user(pam_handle_t *pamh) {
const char *user = NULL;
if (pam_get_user(pamh, &user, NULL) != PAM_SUCCESS || user == NULL) {
return NULL;
}
return user;
}
// PAM entry points med const char **argv
int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv) {
return pam_sm_authenticate_go(pamh, flags, argc, (char**)argv);
}
int pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, int argc, const char **argv) {
return pam_sm_acct_mgmt_go(pamh, flags, argc, (char**)argv);
}