Skip to main content

PortableClaimsContext

Struct PortableClaimsContext 

Source
pub struct PortableClaimsContext<'a> {
Show 14 fields pub audience: &'a AudienceId, pub issuer: Principal, pub mechanism: PortableMechanism, pub key_binding_id: [u8; 32], pub grants: &'a [DelegatedRoleGrant], pub caller: Principal, pub now_ns: u64, pub authority_not_before_ns: u64, pub authority_expires_at_ns: u64, pub enrollment_expires_at_ns: u64, pub min_login_started_at_ns: u64, pub min_proof_issued_at_ns: u64, pub max_login_ttl_ns: u64, pub max_proof_ttl_ns: u64,
}
Expand description

Protected runtime and active enrollment inputs, never inferred from claims. The host must select current, unrevoked authority under its transaction lock. Generation, login revocation, replay and atomic session writes remain host/ session-engine obligations; this context cannot attest its own provenance.

Fields§

§audience: &'a AudienceId§issuer: Principal§mechanism: PortableMechanism§key_binding_id: [u8; 32]§grants: &'a [DelegatedRoleGrant]§caller: Principal

Actual authenticated ingress sender, not an account subject or request field.

§now_ns: u64§authority_not_before_ns: u64§authority_expires_at_ns: u64§enrollment_expires_at_ns: u64§min_login_started_at_ns: u64

Immutable login start floor, including the host’s qualified reset margin.

§min_proof_issued_at_ns: u64§max_login_ttl_ns: u64

Positive host limits, capped at 86,400 and 60 seconds respectively.

§max_proof_ttl_ns: u64

Implementations§

Source§

impl PortableClaimsContext<'_>

Source

pub fn advance_reset_floors( &mut self, clock_skew_ns: u64, ) -> Result<(), PortableClaimsError>

Advance both admission cutoffs after losing session/replay/revocation state. Uses this context’s trusted boot time and deployment-qualified skew bound; the host must reject unavailable/rolled-back clocks before calling this. Floors never decrease, and overflow leaves both unchanged. This only calculates policy: the host must retain these values atomically with state invalidation, authenticate fresh enrollment and fail closed until ready. Do not call per request or discard the resulting floors after startup.

Trait Implementations§

Source§

impl<'a> Clone for PortableClaimsContext<'a>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Copy for PortableClaimsContext<'a>

Source§

impl<'a> Debug for PortableClaimsContext<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.