pub struct DigestSourceRule<H>{ /* private fields */ }Expand description
Rule for determining if a password matches a digested password from a different source. Useful for when separate systems cannot have matching passwords. If no password reference has been set that matches the label on the rule, then passwords will meet this rule. See also PasswordData::password_references
§Example
use passay_rs::rule::digest_source::DigestSourceRule;
use passay_rs::rule::source::SourceReference;
use passay_rs::rule::reference::Reference;
use passay_rs::rule::PasswordData;
use passay_rs::rule::Rule;
let rule = DigestSourceRule::new(Sha1Hasher, true);
let source: Vec<Box<dyn Reference>> = vec![Box::new(SourceReference::with_password_label(
"CJGTDMQRP+rmHApkcijC80aDV0o=".to_string(),
"System B".to_string(),
))];
let password = PasswordData::new(
"t3stUs3r04".to_string(),
Some("testuser".to_string()),
source,
);
let result = rule.validate(&password);
assert!(!result.valid());Implementations§
Trait Implementations§
Source§impl<H> Rule for DigestSourceRule<H>
impl<H> Rule for DigestSourceRule<H>
fn validate(&self, password_data: &PasswordData) -> RuleResult
fn as_has_characters(&self) -> Option<&dyn HasCharacters>
fn as_dictionary_rule(&self) -> Option<&dyn DictionaryRuleTrait>
Auto Trait Implementations§
impl<H> Freeze for DigestSourceRule<H>where
H: Freeze,
impl<H> RefUnwindSafe for DigestSourceRule<H>where
H: RefUnwindSafe,
impl<H> Send for DigestSourceRule<H>where
H: Send,
impl<H> Sync for DigestSourceRule<H>where
H: Sync,
impl<H> Unpin for DigestSourceRule<H>where
H: Unpin,
impl<H> UnsafeUnpin for DigestSourceRule<H>where
H: UnsafeUnpin,
impl<H> UnwindSafe for DigestSourceRule<H>where
H: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more