pub enum IdVerifyError {
Show 22 variants
InvalidFormat,
SignatureInvalid,
Expired,
IssuerInvalid,
AudienceInvalid,
MissingClaim(&'static str),
KeysetUnavailable,
NonceMissing,
NonceMismatch,
AtHashMissing,
AtHashMismatch,
CHashMissing,
CHashMismatch,
AzpMissing,
AzpMismatch,
AuthTimeMissing,
AuthTimeStale,
AcrMissing,
AcrNotAllowed,
UnknownClaim(String),
CatMismatch(String),
Other(String),
}Expand description
id_token verification failure surface.
One variant per logical failure class; mirrors
VerifyError for access tokens but
adds OIDC-specific rows (M66-M73 + M29-mirror CatMismatch). The
PAS-engine variants reflect the boundary contract: audit logs map
them 1:1 to engine ppoppo_token::id_token::AuthError rows.
Adapter-side variants (InvalidFormat) cover failures upstream of
engine entry.
Variants§
InvalidFormat
Token did not parse as a JWS Compact serialization.
SignatureInvalid
Cryptographic signature verification failed.
Expired
exp claim is in the past.
IssuerInvalid
iss did not match the verifier’s expected issuer.
AudienceInvalid
aud did not match the verifier’s expected audience.
MissingClaim(&'static str)
A required claim was absent or malformed.
JWKS fetch failed and there is no usable cached snapshot.
NonceMissing
M66 — nonce claim is absent from the id_token payload.
NonceMismatch
M66 — payload nonce is present but does not match the
expected_nonce the RP stored at the auth-request boundary.
AtHashMissing
M67 — at_hash claim absent from payload while the verifier was
configured with an expected access_token binding (hybrid +
implicit flows).
AtHashMismatch
M67 — payload at_hash is present but does not match the
expected access_token binding.
CHashMissing
M68 — c_hash claim absent while the verifier was configured
with an expected authorization-code binding (hybrid flow).
CHashMismatch
M68 — payload c_hash is present but does not match the
expected authorization-code binding.
AzpMissing
M69 — azp claim absent on multi-audience id_token.
AzpMismatch
M69 — payload azp does not equal the RP’s client_id.
AuthTimeMissing
M70 — auth_time claim absent while the verifier was configured
with a max_age window.
AuthTimeStale
M70 — now - auth_time > max_age. The user authenticated too
long ago for this RP’s freshness policy.
AcrMissing
M71 — acr claim absent while the verifier was configured with
acr_values.
AcrNotAllowed
M71 — payload acr not in the RP’s acr_values allowlist.
UnknownClaim(String)
M72 — id_token payload contains a claim outside the per-scope allowlist. Carries the offending name for audit log disambiguation (forgery vs issuer drift).
CatMismatch(String)
M29-mirror — id_token payload carries a cat claim whose value
is not "id". Refuses access_token shapes presented to the
id_token verifier (the symmetric counterpart to M73 on the
access-token side). Carries the offending value.
Other(String)
Catch-all for engine variants that don’t map to a structural
SDK rejection. Carries the engine’s [AuthError] Display so the
audit log retains the precise M-code.
Trait Implementations§
Source§impl Clone for IdVerifyError
impl Clone for IdVerifyError
Source§fn clone(&self) -> IdVerifyError
fn clone(&self) -> IdVerifyError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for IdVerifyError
impl Debug for IdVerifyError
Source§impl Display for IdVerifyError
impl Display for IdVerifyError
Source§impl Error for IdVerifyError
impl Error for IdVerifyError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl PartialEq for IdVerifyError
impl PartialEq for IdVerifyError
Source§fn eq(&self, other: &IdVerifyError) -> bool
fn eq(&self, other: &IdVerifyError) -> bool
self and other values to be equal, and is used by ==.impl Eq for IdVerifyError
impl StructuralPartialEq for IdVerifyError
Auto Trait Implementations§
impl Freeze for IdVerifyError
impl RefUnwindSafe for IdVerifyError
impl Send for IdVerifyError
impl Sync for IdVerifyError
impl Unpin for IdVerifyError
impl UnsafeUnpin for IdVerifyError
impl UnwindSafe for IdVerifyError
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.