Expand description
Trait to implement for data stored with pam using PamLibExt::send_data
in order to provide a cleanup callback.
Example
extern crate pamsm;
use pamsm::{Pam, PamData, PamError, PamFlags};
use std::fs::write;
struct Token([u8; 32]);
impl PamData for Token {
fn cleanup(&self, _pam: Pam, flags: PamFlags, status: PamError) {
if !flags.contains(PamFlags::DATA_REPLACE) && status == PamError::SUCCESS {
match write(".token.bin", self.0) {
Ok(_) => (),
Err(err) => {
if !flags.contains(PamFlags::SILENT) {
println!("Error persisting token : {:?}", err);
}
}
};
}
}
}