Mercurial > crates > nonstick
comparison src/module.rs @ 146:1bc52025156b
Split PAM items into their own separate struct.
To trim down the number of methods on `PamShared`, this puts all the
Items into their own struct(s). This also makes the split between
authtok/authtok_item easier to understand.
| author | Paul Fisher <paul@pfish.zone> |
|---|---|
| date | Sun, 06 Jul 2025 19:10:26 -0400 |
| parents | f6186e41399b |
| children | 2f5913131295 |
comparison
equal
deleted
inserted
replaced
| 145:8f964b701652 | 146:1bc52025156b |
|---|---|
| 2 | 2 |
| 3 // Temporarily allowed until we get the actual conversation functions hooked up. | 3 // Temporarily allowed until we get the actual conversation functions hooked up. |
| 4 #![allow(dead_code)] | 4 #![allow(dead_code)] |
| 5 | 5 |
| 6 use crate::constants::{ErrorCode, Flags, Result}; | 6 use crate::constants::{ErrorCode, Flags, Result}; |
| 7 use crate::handle::PamHandleModule; | 7 use crate::handle::ModuleClient; |
| 8 use std::ffi::CStr; | 8 use std::ffi::CStr; |
| 9 | 9 |
| 10 /// A trait for a PAM module to implement. | 10 /// A trait for a PAM module to implement. |
| 11 /// | 11 /// |
| 12 /// The default implementations of all these hooks tell PAM to ignore them | 12 /// The default implementations of all these hooks tell PAM to ignore them |
| 19 /// and the [PAM Module Writer’s Guide][mwg]. | 19 /// and the [PAM Module Writer’s Guide][mwg]. |
| 20 /// | 20 /// |
| 21 /// [manpage]: https://www.man7.org/linux/man-pages/man3/pam.3.html | 21 /// [manpage]: https://www.man7.org/linux/man-pages/man3/pam.3.html |
| 22 /// [mwg]: https://www.chiark.greenend.org.uk/doc/libpam-doc/html/Linux-PAM_MWG.html | 22 /// [mwg]: https://www.chiark.greenend.org.uk/doc/libpam-doc/html/Linux-PAM_MWG.html |
| 23 #[allow(unused_variables)] | 23 #[allow(unused_variables)] |
| 24 pub trait PamModule<T: PamHandleModule> { | 24 pub trait PamModule<T: ModuleClient> { |
| 25 // Functions for auth modules. | 25 // Functions for auth modules. |
| 26 | 26 |
| 27 /// Authenticate the user. | 27 /// Authenticate the user. |
| 28 /// | 28 /// |
| 29 /// This is probably the first thing you want to implement. | 29 /// This is probably the first thing you want to implement. |
| 30 /// In most cases, you will want to get the user and password, | 30 /// In most cases, you will want to get the user and password, |
| 31 /// using [`PamShared::username`](crate::PamShared::username) | 31 /// using [`PamShared::username`](crate::PamShared::username) |
| 32 /// and [`PamHandleModule::authtok`], | 32 /// and [`ModuleClient::authtok`], |
| 33 /// and verify them against something. | 33 /// and verify them against something. |
| 34 /// | 34 /// |
| 35 /// See [the Module Writer's Guide entry for `pam_sm_authenticate`][mwg] | 35 /// See [the Module Writer's Guide entry for `pam_sm_authenticate`][mwg] |
| 36 /// for more information. | 36 /// for more information. |
| 37 /// | 37 /// |
