pub struct PasswordChallengeMetadata {
pub auth_salt: Vec<u8>,
pub auth_memory_kib: u32,
pub auth_iterations: u32,
pub auth_parallelism: u32,
pub challenge_id: Vec<u8>,
pub nonce: Vec<u8>,
pub auth_kdf_id: u32,
pub format_version: u32,
}Expand description
Only returned for PASSWORD. Every handle without an active password setup (unknown, passkey-only, deleted, or disabled) gets indistinguishable public metadata: salt derived deterministically from a server secret and the canonical handle, with the same costs, KDF/version, and response shape. Challenge IDs/nonces remain fresh. The server binds the account internally, never via a handle-to-UUID value at begin. Creation is throttled; expiry <= 10 minutes.
Fields§
§auth_salt: Vec<u8>Exactly 16 bytes.
auth_memory_kib: u32Exactly 65536 in v1.
auth_iterations: u32Exactly 3 in v1.
auth_parallelism: u32Exactly 4 in v1.
challenge_id: Vec<u8>Exactly 32 random bytes, one-use.
nonce: Vec<u8>Exactly 32 random bytes, one-use.
auth_kdf_id: u32Exactly 1 = Argon2id in v1.
format_version: u32Exactly 1 in v1.
Trait Implementations§
Source§impl Clone for PasswordChallengeMetadata
impl Clone for PasswordChallengeMetadata
Source§impl Debug for PasswordChallengeMetadata
impl Debug for PasswordChallengeMetadata
Source§impl Default for PasswordChallengeMetadata
impl Default for PasswordChallengeMetadata
impl Eq for PasswordChallengeMetadata
Source§impl Hash for PasswordChallengeMetadata
impl Hash for PasswordChallengeMetadata
Source§impl Message for PasswordChallengeMetadata
impl Message for PasswordChallengeMetadata
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Returns the encoded length of the message without a length delimiter.
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,
Encodes the message to a buffer. Read more
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Encodes the message to a newly allocated buffer.
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,
Encodes the message with a length-delimiter to a buffer. Read more
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,
Encodes the message with a length-delimiter to a newly allocated buffer.
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Decodes an instance of the message from a buffer. Read more
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,
Decodes a length-delimited instance of the message from the buffer.
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,
Decodes an instance of the message from a buffer, and merges it into
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,
Decodes a length-delimited instance of the message from buffer, and
merges it into
self.impl StructuralPartialEq for PasswordChallengeMetadata
Auto Trait Implementations§
impl Freeze for PasswordChallengeMetadata
impl RefUnwindSafe for PasswordChallengeMetadata
impl Send for PasswordChallengeMetadata
impl Sync for PasswordChallengeMetadata
impl Unpin for PasswordChallengeMetadata
impl UnsafeUnpin for PasswordChallengeMetadata
impl UnwindSafe for PasswordChallengeMetadata
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
Mutably borrows from an owned value. Read more