pam/lib.rs
1//! Interface to the pluggable authentication module framework (PAM).
2//!
3//! The goal of this library is to provide a type-safe API that can be used to
4//! interact with PAM. The library is incomplete - currently it supports
5//! a subset of functions for use in a pam authentication module. A pam module
6//! is a shared library that is invoked to authenticate a user, or to perform
7//! other functions.
8//!
9//! For general information on writing pam modules, see
10//! [The Linux-PAM Module Writers' Guide][module-guide]
11//!
12//! [module-guide]: http://www.linux-pam.org/Linux-PAM-html/Linux-PAM_MWG.html
13//!
14//! A typical authentication module will define an external function called
15//! `pam_sm_authenticate()`, which will use functions in this library to
16//! interrogate the program that requested authentication for more information,
17//! and to render a result. For a working example that uses this library, see
18//! [toznyauth-pam][].
19//!
20//! [toznyauth-pam]: https://github.com/tozny/toznyauth-pam
21//!
22//! Note that constants that are normally read from pam header files are
23//! hard-coded in the `constants` module. The values there are taken from
24//! a Linux system. That means that it might take some work to get this library
25//! to work on other platforms.
26
27extern crate libc;
28
29pub mod constants;
30pub mod conv;
31pub mod items;
32#[doc(hidden)]
33pub mod macros;
34pub mod module;