PAM_START(3)

PAM_START(3) | 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 Smørgrav <des@des.no>.

June 27, 2023 | NetBSD 11.0