1/* syslogging function for errors and other information */ 2extern void _log_err(pam_handle_t *, int, const char *, ...); 3 4/* set the control flags for the UNIX module. */ 5extern int set_ctrl(pam_handle_t *, int, int, const char **); 6 7/* generic function for freeing pam data segments */ 8extern void _cleanup(pam_handle_t *, void *, int); 9 10/* 11 * Safe duplication of character strings. "Paranoid"; don't leave 12 * evidence of old token around for later stack analysis. 13 */ 14 15extern char *smbpXstrDup(pam_handle_t *,const char *); 16 17/* ************************************************************** * 18 * Useful non-trivial functions * 19 * ************************************************************** */ 20 21extern void _cleanup_failures(pam_handle_t *, void *, int); 22 23/* compare 2 strings */ 24extern bool strequal(const char *, const char *); 25 26extern struct smb_passwd * 27_my_get_smbpwnam(FILE *, const char *, bool *, bool *, long *); 28 29extern int _smb_verify_password( pam_handle_t *pamh , struct samu *sampass, 30 const char *p, unsigned int ctrl ); 31 32/* 33 * this function obtains the name of the current user and ensures 34 * that the PAM_USER item is set to this value 35 */ 36 37extern int _smb_get_user(pam_handle_t *, unsigned int, 38 const char *, const char **); 39 40/* _smb_blankpasswd() is a quick check for a blank password */ 41 42extern int _smb_blankpasswd(unsigned int, struct samu *); 43 44 45/* obtain a password from the user */ 46extern int _smb_read_password( pam_handle_t *, unsigned int, const char*, 47 const char *, const char *, const char *, char **); 48 49extern int _pam_smb_approve_pass(pam_handle_t *, unsigned int, const char *, 50 const char *); 51 52int _pam_get_item(const pam_handle_t *pamh, 53 int item_type, 54 const void *_item); 55int _pam_get_data(const pam_handle_t *pamh, 56 const char *module_data_name, 57 const void *_data); 58