pub struct PasswordChallengeProof {
pub challenge_id: Vec<u8>,
pub signature: Vec<u8>,
pub caller_device_public_key: Vec<u8>,
}Expand description
Proof of the public password verifier only. This message is never accepted by CompleteAuthentication, an owner mutation, or a credential issuer. Ed25519 signs SHA-256(“heddle-password-proof-v1” || canonical transcript): challenge_id[32] || nonce[32] || caller_device_public_key[32] || u32be(operation_id UTF-8 byte length) || operation_id UTF-8 || i64be(expiry Unix seconds). No protobuf is signed. The server’s one-use challenge record binds the current envelope revision; it is returned only with the continuation after successful proof.
Fields§
§challenge_id: Vec<u8>Exactly 32 bytes.
signature: Vec<u8>Exactly 64 Ed25519 bytes.
caller_device_public_key: Vec<u8>Exactly 32 bytes; equals begin key.
Trait Implementations§
Source§impl Clone for PasswordChallengeProof
impl Clone for PasswordChallengeProof
Source§fn clone(&self) -> PasswordChallengeProof
fn clone(&self) -> PasswordChallengeProof
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PasswordChallengeProof
impl Debug for PasswordChallengeProof
Source§impl Default for PasswordChallengeProof
impl Default for PasswordChallengeProof
Source§fn default() -> PasswordChallengeProof
fn default() -> PasswordChallengeProof
Returns the “default value” for a type. Read more
impl Eq for PasswordChallengeProof
Source§impl Hash for PasswordChallengeProof
impl Hash for PasswordChallengeProof
Source§impl Message for PasswordChallengeProof
impl Message for PasswordChallengeProof
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.Source§impl PartialEq for PasswordChallengeProof
impl PartialEq for PasswordChallengeProof
impl StructuralPartialEq for PasswordChallengeProof
Auto Trait Implementations§
impl Freeze for PasswordChallengeProof
impl RefUnwindSafe for PasswordChallengeProof
impl Send for PasswordChallengeProof
impl Sync for PasswordChallengeProof
impl Unpin for PasswordChallengeProof
impl UnsafeUnpin for PasswordChallengeProof
impl UnwindSafe for PasswordChallengeProof
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
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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> ⓘ
Converts
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> ⓘ
Converts
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