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 26 27 28 29 30 31 32 33 34 35
#![feature(core)] #![feature(libc)] #![feature(std_misc)] //! Interface to the pluggable authentication module framework (PAM). //! //! The goal of this library is to provide a type-safe API that can be used to //! interact with PAM. The library is incomplete - currently it supports //! a subset of functions for use in a pam authentication module. A pam module //! is a shared library that is invoked to authenticate a user, or to perform //! other functions. //! //! For general information on writing pam modules, see //! [The Linux-PAM Module Writers' Guide][module-guide] //! //! [module-guide]: http://www.linux-pam.org/Linux-PAM-html/Linux-PAM_MWG.html //! //! A typical authentication module will define an external function called //! `pam_sm_authenticate()`, which will use functions in this library to //! interrogate the program that requested authentication for more information, //! and to render a result. For a working example that uses this library, see //! [toznyauth-pam][]. //! //! [toznyauth-pam]: https://github.com/tozny/toznyauth-pam //! //! Note that constants that are normally read from pam header files are //! hard-coded in the `constants` module. The values there are taken from //! a Linux system. That means that it might take some work to get this library //! to work on other platforms. extern crate libc; pub mod conv; pub mod constants; pub mod module;