pub struct PendingStepUp {
pub challenge: String,
pub session_id: String,
pub subject: String,
pub approver: String,
pub approver_any: bool,
pub target_acr: String,
pub acceptable_evidence: Vec<String>,
pub created_at: u64,
pub expires_at: u64,
}Expand description
A pending AAL step-up awaiting an approve-response.
Fields§
§challenge: Stringbase64url challenge the approver echoes + signs/asserts over. The
store key is stepup:{challenge}.
session_id: StringThe session being elevated.
subject: StringThe VID whose session is being elevated; the approve-response’s
subject MUST equal this.
approver: StringThe VID authorized to sign the approve-response — the document
issuer / proof VM DID (or credential subject) the relying party will
accept. Equals Self::subject for self step-up; the delegated
AclEntry.stepUp.approver the request was addressed to for
delegated step-up. The relying party elevates only when the signer
equals this.
#[serde(default)] so an in-flight record written before this field
existed deserializes with an empty approver; the handler treats an empty
approver as self (issuer MUST equal subject), preserving the prior
contract for the ≤TTL window after a deploy.
approver_any: booltrue for delegated-any mode: the approve-response is authorized
not against a single bound Self::approver but against the relying
party’s approver criterion (the issuer must be an admin covering the
subject’s contexts — see acl::delegated_any_approver_covers).
Self::approver is empty in this mode. #[serde(default)] so older
records deserialize as false (the self/delegated single-approver path).
target_acr: StringThe acr the relying party requested. The elevated session MUST reach
at least this, else acr_unsatisfied.
acceptable_evidence: Vec<String>Evidence kinds the relying party will accept (did-signed,
webauthn). Empty = any supported kind.
created_at: u64§expires_at: u64Unix seconds after which the step-up is no longer valid.
Trait Implementations§
Source§impl Clone for PendingStepUp
impl Clone for PendingStepUp
Source§fn clone(&self) -> PendingStepUp
fn clone(&self) -> PendingStepUp
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 PendingStepUp
impl Debug for PendingStepUp
Source§impl<'de> Deserialize<'de> for PendingStepUp
impl<'de> Deserialize<'de> for PendingStepUp
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for PendingStepUp
impl PartialEq for PendingStepUp
Source§impl Serialize for PendingStepUp
impl Serialize for PendingStepUp
impl StructuralPartialEq for PendingStepUp
Auto Trait Implementations§
impl Freeze for PendingStepUp
impl RefUnwindSafe for PendingStepUp
impl Send for PendingStepUp
impl Sync for PendingStepUp
impl Unpin for PendingStepUp
impl UnsafeUnpin for PendingStepUp
impl UnwindSafe for PendingStepUp
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> BorrowUnordered for T
impl<T> BorrowUnordered for T
fn as_unordered(&self) -> &Unordered<T>
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<'de, T, C> DeserializeTyped<'de, C> for Twhere
T: Deserialize<'de>,
impl<'de, T, C> DeserializeTyped<'de, C> for Twhere
T: Deserialize<'de>,
fn deserialize_typed<S>(
_: &C,
deserializer: S,
) -> Result<T, <S as Deserializer<'de>>::Error>where
S: Deserializer<'de>,
impl<T, U> DeserializeTypedOwned<T> for Uwhere
U: for<'de> DeserializeTyped<'de, T>,
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, U, C> IntoWithContext<U, C> for Twhere
U: FromWithContext<T, C>,
impl<T, U, C> IntoWithContext<U, C> for Twhere
U: FromWithContext<T, C>,
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ResourceProvider<()> for T
impl<T> ResourceProvider<()> for T
Source§fn get_resource(&self) -> &()
fn get_resource(&self) -> &()
T.