auth.provider API
    Preparing search index...

    Function createChallengeCeremony

    • ChallengeCeremony composition: combines ChallengeStore (issue/find/ consume) and ReplaySeenSet (markSeen/contains) into the 3-outcome wrapper (consumed | replayed | unknown).

      Three-branch control flow:

      1. find → null → contains → outcome replayed | unknown
      2. find → Challenge, consume → true → markSeen (swallow expired-at-issue) → outcome consumed
      3. find → Challenge, consume → false → outcome replayed (race-loss / TTL boundary, fail-closed)

      Acknowledged consume→markSeen propagation gap (§6.1): sub-millisecond on single Redis instance, ~1ms under realistic jitter. Bounded fraction of sane challenge TTL. Security impact zero (both unknown and replayed cause caller to reject). Audit signal impact bounded.

      Per A1 §6 + §6.1.

      Parameters

      Returns ChallengeCeremony