pub struct AuthenticationChallenge {
pub ref: Option<RecordRef>,
pub challenge: Vec<u8>,
pub relying_party_id: String,
pub expires_at: Option<Timestamp>,
pub allowed_credential_ids: Vec<Vec<u8>>,
pub user_verification: i32,
pub method: i32,
pub oauth_provider: i32,
pub credential_expires_at: Option<Timestamp>,
pub passkey_mint_grant: Option<PasskeyMintGrant>,
pub passkey_authorities: Vec<SignedPasskeyAuthority>,
pub password_challenge: Option<PasswordChallengeMetadata>,
}Fields§
§ref: Option<RecordRef>For PASSWORD, ref.spool MUST be empty and ref.id MUST be an opaque, randomly generated identifier independent of the account.
challenge: Vec<u8>For CREDENTIAL_METHOD_PASSKEY this MUST be exactly the 32-byte passkey_mint_grant_signing_digest(passkey_mint_grant). For PASSWORD this MUST equal password_challenge.nonce (32 bytes); expires_at has zero nanos. OAuth keeps its own challenge semantics.
relying_party_id: String§expires_at: Option<Timestamp>§allowed_credential_ids: Vec<Vec<u8>>§user_verification: i32§method: i32§oauth_provider: i32§credential_expires_at: Option<Timestamp>Separate from ceremony expiry; completion cannot extend this upper bound. For PASSWORD, this MUST be a deployment-wide value independent of the account and MUST NOT be derived from per-account policy.
passkey_mint_grant: Option<PasskeyMintGrant>For passkey-backed temporary authoring, assert the signing digest of this exact account-free grant. Completion cannot replace any of its fields. A hinted begin uses the minimum max_session_ttl_seconds among every returned credential that may sign. An empty-hint begin uses a deployment-configured minimum that every accepted authority satisfies. This issuance choice does not replace the verifier’s per-authority ceiling and time-window checks. For PASSWORD, this MUST be absent.
Owner-signed certificates for the allowed credentials. Certificate order matches allowed_credential_ids; each id and key are verified at registration. Both lists are empty for an empty account_hint or PASSWORD method.
password_challenge: Option<PasswordChallengeMetadata>Present only for PASSWORD; no envelope or account UUID is returned at begin.
Implementations§
Source§impl AuthenticationChallenge
impl AuthenticationChallenge
Sourcepub fn user_verification(&self) -> UserVerification
pub fn user_verification(&self) -> UserVerification
Returns the enum value of user_verification, or the default if the field is set to an invalid enum value.
Sourcepub fn set_user_verification(&mut self, value: UserVerification)
pub fn set_user_verification(&mut self, value: UserVerification)
Sets user_verification to the provided enum value.
Sourcepub fn method(&self) -> CredentialMethod
pub fn method(&self) -> CredentialMethod
Returns the enum value of method, or the default if the field is set to an invalid enum value.
Sourcepub fn set_method(&mut self, value: CredentialMethod)
pub fn set_method(&mut self, value: CredentialMethod)
Sets method to the provided enum value.
Sourcepub fn oauth_provider(&self) -> OAuthProvider
pub fn oauth_provider(&self) -> OAuthProvider
Returns the enum value of oauth_provider, or the default if the field is set to an invalid enum value.
Sourcepub fn set_oauth_provider(&mut self, value: OAuthProvider)
pub fn set_oauth_provider(&mut self, value: OAuthProvider)
Sets oauth_provider to the provided enum value.
Trait Implementations§
Source§impl Clone for AuthenticationChallenge
impl Clone for AuthenticationChallenge
Source§fn clone(&self) -> AuthenticationChallenge
fn clone(&self) -> AuthenticationChallenge
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 AuthenticationChallenge
impl Debug for AuthenticationChallenge
Source§impl Default for AuthenticationChallenge
impl Default for AuthenticationChallenge
Source§fn default() -> AuthenticationChallenge
fn default() -> AuthenticationChallenge
Source§impl Message for AuthenticationChallenge
impl Message for AuthenticationChallenge
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl PartialEq for AuthenticationChallenge
impl PartialEq for AuthenticationChallenge
impl StructuralPartialEq for AuthenticationChallenge
Auto Trait Implementations§
impl Freeze for AuthenticationChallenge
impl RefUnwindSafe for AuthenticationChallenge
impl Send for AuthenticationChallenge
impl Sync for AuthenticationChallenge
impl Unpin for AuthenticationChallenge
impl UnsafeUnpin for AuthenticationChallenge
impl UnwindSafe for AuthenticationChallenge
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
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,
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more