Skip to main content

DigestSourceRule

Struct DigestSourceRule 

Source
pub struct DigestSourceRule<H>
where H: Hasher<String>,
{ /* 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§

Source§

impl<H> DigestSourceRule<H>
where H: Hasher<String>,

Source

pub fn new(hasher: H, report_all: bool) -> Self

Trait Implementations§

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V