pub fn evaluate(
state: &PinState,
now: DateTime<Utc>,
pin_matches: bool,
) -> (PinDecision, PinState)Expand description
Decide an attempt and produce the state to persist.
pin_matches is the result of the hash comparison; passing it in rather than
doing the comparison here is what keeps this function pure and cheap to test
across the whole attempt/lockout space.
A locked profile is refused without consulting the hash, so a caller cannot burn through a lockout by guessing quickly.
TRACES: UR-083 | DR-268