PAM_START(3)           FreeBSD Library Functions Manual           PAM_START(3)

NAME

     pam_start - initiate a PAM transaction

SYNOPSIS

     #include <sys/types.h>
     #include <security/pam_appl.h>

     int
     pam_start(const char *service, const char *user,
         const struct pam_conv *pam_conv, pam_handle_t **pamh);

DESCRIPTION

     The pam_start() function creates and initializes a PAM context.

     The service argument specifies the name of the policy to apply, and is
     stored in the PAM_SERVICE item in the created context.

     The user argument specifies the name of the target user - the user the
     created context will serve to authenticate.  It is stored in the PAM_USER
     item in the created context.

     The pam_conv argument points to a struct pam_conv describing the
     conversation function to use; see pam_conv for details.

RETURN VALUES

     The pam_start() function returns one of the following values:

     [PAM_SUCCESS]       Success.

     [PAM_BAD_ITEM]      Unrecognized or restricted item.

     [PAM_BUF_ERR]       Memory buffer error.

     [PAM_SYSTEM_ERR]    System error.

SEE ALSO

     pam(3), pam_end(3), pam_get_item(3), pam_set_item(3), pam_strerror(3)

STANDARDS

     X/Open Single Sign-On Service (XSSO) - Pluggable Authentication Modules,
     June 1997.

AUTHORS

     The pam_start() function and this manual page were developed for the
     FreeBSD Project by ThinkSec AS and Network Associates Laboratories, the
     Security Research Division of Network Associates, Inc. under DARPA/SPAWAR
     contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA CHATS research
     program.

     The OpenPAM library is maintained by Dag-Erling Smorgrav <des@des.dev>.

FreeBSD 15.1-STABLE-HBSD         May 31, 2025                     PAM_START(3)