Mercurial > crates > nonstick
diff src/lib.rs @ 1:b195a14058bb
initial commit
author | Jesse Hallett <jesse@galois.com> |
---|---|
date | Thu, 05 Mar 2015 16:25:10 -0800 |
parents | |
children | e69e2966ae0d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/lib.rs Thu Mar 05 16:25:10 2015 -0800 @@ -0,0 +1,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 +//! [tozny-pam][]. +//! +//! [tozny-pam]: https://github.com/tozny/tozny-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;