pub struct ClientLogin<CS: CipherSuite> { /* private fields */ }Expand description
The state elements the client holds to perform a login
Implementations§
Source§impl<CS: CipherSuite> ClientLogin<CS>
impl<CS: CipherSuite> ClientLogin<CS>
Sourcepub fn serialize(
&self,
) -> GenericArray<u8, Sum<Sum<<<CS::OprfCs as CipherSuite>::Group as Group>::ScalarLen, CredentialRequestLen<CS>>, <<CS::KeyExchange as KeyExchange>::KE1State as Serialize>::Len>>where
<CS::KeyExchange as KeyExchange>::KE1Message: Serialize,
<<CS::OprfCs as CipherSuite>::Group as Group>::ElemLen: Add<<<CS::KeyExchange as KeyExchange>::KE1Message as Serialize>::Len>,
CredentialRequestLen<CS>: ArrayLength,
<<CS::OprfCs as CipherSuite>::Group as Group>::ScalarLen: Add<CredentialRequestLen<CS>>,
<CS::KeyExchange as KeyExchange>::KE1State: Serialize,
Sum<<<CS::OprfCs as CipherSuite>::Group as Group>::ScalarLen, CredentialRequestLen<CS>>: ArrayLength + Add<<<CS::KeyExchange as KeyExchange>::KE1State as Serialize>::Len>,
Sum<Sum<<<CS::OprfCs as CipherSuite>::Group as Group>::ScalarLen, CredentialRequestLen<CS>>, <<CS::KeyExchange as KeyExchange>::KE1State as Serialize>::Len>: ArrayLength,
pub fn serialize(
&self,
) -> GenericArray<u8, Sum<Sum<<<CS::OprfCs as CipherSuite>::Group as Group>::ScalarLen, CredentialRequestLen<CS>>, <<CS::KeyExchange as KeyExchange>::KE1State as Serialize>::Len>>where
<CS::KeyExchange as KeyExchange>::KE1Message: Serialize,
<<CS::OprfCs as CipherSuite>::Group as Group>::ElemLen: Add<<<CS::KeyExchange as KeyExchange>::KE1Message as Serialize>::Len>,
CredentialRequestLen<CS>: ArrayLength,
<<CS::OprfCs as CipherSuite>::Group as Group>::ScalarLen: Add<CredentialRequestLen<CS>>,
<CS::KeyExchange as KeyExchange>::KE1State: Serialize,
Sum<<<CS::OprfCs as CipherSuite>::Group as Group>::ScalarLen, CredentialRequestLen<CS>>: ArrayLength + Add<<<CS::KeyExchange as KeyExchange>::KE1State as Serialize>::Len>,
Sum<Sum<<<CS::OprfCs as CipherSuite>::Group as Group>::ScalarLen, CredentialRequestLen<CS>>, <<CS::KeyExchange as KeyExchange>::KE1State as Serialize>::Len>: ArrayLength,
Serialization into bytes
Sourcepub fn deserialize(input: &[u8]) -> Result<Self, ProtocolError>where
<CS::KeyExchange as KeyExchange>::KE1Message: Deserialize + Serialize,
<CS::KeyExchange as KeyExchange>::KE1State: Deserialize + Serialize,
pub fn deserialize(input: &[u8]) -> Result<Self, ProtocolError>where
<CS::KeyExchange as KeyExchange>::KE1Message: Deserialize + Serialize,
<CS::KeyExchange as KeyExchange>::KE1State: Deserialize + Serialize,
Deserialization from bytes
Source§impl<CS: CipherSuite> ClientLogin<CS>
impl<CS: CipherSuite> ClientLogin<CS>
Sourcepub fn start<R: Rng + CryptoRng>(
rng: &mut R,
password: &[u8],
) -> Result<ClientLoginStartResult<CS>, ProtocolError>
pub fn start<R: Rng + CryptoRng>( rng: &mut R, password: &[u8], ) -> Result<ClientLoginStartResult<CS>, ProtocolError>
Returns an initial “blinded” password request to send to the server, as
well as a ClientLogin
Sourcepub fn finish<R: CryptoRng + Rng>(
self,
rng: &mut R,
password: &[u8],
credential_response: CredentialResponse<CS>,
params: ClientLoginFinishParameters<'_, '_, '_, CS>,
) -> Result<ClientLoginFinishResult<CS>, ProtocolError>
pub fn finish<R: CryptoRng + Rng>( self, rng: &mut R, password: &[u8], credential_response: CredentialResponse<CS>, params: ClientLoginFinishParameters<'_, '_, '_, CS>, ) -> Result<ClientLoginFinishResult<CS>, ProtocolError>
“Unblinds” the server’s answer and returns the opened assets from the server
Trait Implementations§
Source§impl<CS: CipherSuite> Clone for ClientLogin<CS>
impl<CS: CipherSuite> Clone for ClientLogin<CS>
Source§impl<CS: CipherSuite> Debug for ClientLogin<CS>where
OprfClient<CS::OprfCs>: Debug,
<CS::KeyExchange as KeyExchange>::KE1State: Debug,
CredentialRequest<CS>: Debug,
impl<CS: CipherSuite> Debug for ClientLogin<CS>where
OprfClient<CS::OprfCs>: Debug,
<CS::KeyExchange as KeyExchange>::KE1State: Debug,
CredentialRequest<CS>: Debug,
Source§impl<'de, CS: CipherSuite> Deserialize<'de> for ClientLogin<CS>where
<CS::KeyExchange as KeyExchange>::KE1Message: Deserialize<'de>,
<CS::KeyExchange as KeyExchange>::KE1State: Deserialize<'de>,
impl<'de, CS: CipherSuite> Deserialize<'de> for ClientLogin<CS>where
<CS::KeyExchange as KeyExchange>::KE1Message: Deserialize<'de>,
<CS::KeyExchange as KeyExchange>::KE1State: Deserialize<'de>,
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<CS: CipherSuite> Drop for ClientLogin<CS>
impl<CS: CipherSuite> Drop for ClientLogin<CS>
impl<CS: CipherSuite> Eq for ClientLogin<CS>where
OprfClient<CS::OprfCs>: Eq,
<CS::KeyExchange as KeyExchange>::KE1State: Eq,
CredentialRequest<CS>: Eq,
Source§impl<CS: CipherSuite> Hash for ClientLogin<CS>where
OprfClient<CS::OprfCs>: Hash,
<CS::KeyExchange as KeyExchange>::KE1State: Hash,
CredentialRequest<CS>: Hash,
impl<CS: CipherSuite> Hash for ClientLogin<CS>where
OprfClient<CS::OprfCs>: Hash,
<CS::KeyExchange as KeyExchange>::KE1State: Hash,
CredentialRequest<CS>: Hash,
Source§impl<CS: CipherSuite> PartialEq for ClientLogin<CS>where
OprfClient<CS::OprfCs>: PartialEq,
<CS::KeyExchange as KeyExchange>::KE1State: PartialEq,
CredentialRequest<CS>: PartialEq,
impl<CS: CipherSuite> PartialEq for ClientLogin<CS>where
OprfClient<CS::OprfCs>: PartialEq,
<CS::KeyExchange as KeyExchange>::KE1State: PartialEq,
CredentialRequest<CS>: PartialEq,
Source§impl<CS: CipherSuite> Serialize for ClientLogin<CS>where
<CS::KeyExchange as KeyExchange>::KE1Message: Serialize,
<CS::KeyExchange as KeyExchange>::KE1State: Serialize,
impl<CS: CipherSuite> Serialize for ClientLogin<CS>where
<CS::KeyExchange as KeyExchange>::KE1Message: Serialize,
<CS::KeyExchange as KeyExchange>::KE1State: Serialize,
impl<CS: CipherSuite> ZeroizeOnDrop for ClientLogin<CS>
Auto Trait Implementations§
impl<CS> Freeze for ClientLogin<CS>where
<<CS as CipherSuite>::KeyExchange as KeyExchange>::KE1State: Freeze,
<<<CS as CipherSuite>::OprfCs as CipherSuite>::Group as Group>::Scalar: Freeze,
<<CS as CipherSuite>::KeyExchange as KeyExchange>::KE1Message: Freeze,
<<<CS as CipherSuite>::OprfCs as CipherSuite>::Group as Group>::Elem: Freeze,
impl<CS> RefUnwindSafe for ClientLogin<CS>where
<<CS as CipherSuite>::KeyExchange as KeyExchange>::KE1State: RefUnwindSafe,
<<<CS as CipherSuite>::OprfCs as CipherSuite>::Group as Group>::Scalar: RefUnwindSafe,
<<CS as CipherSuite>::KeyExchange as KeyExchange>::KE1Message: RefUnwindSafe,
<<<CS as CipherSuite>::OprfCs as CipherSuite>::Group as Group>::Elem: RefUnwindSafe,
impl<CS> Send for ClientLogin<CS>where
<<CS as CipherSuite>::KeyExchange as KeyExchange>::KE1State: Send,
<<<CS as CipherSuite>::OprfCs as CipherSuite>::Group as Group>::Scalar: Send,
<<CS as CipherSuite>::KeyExchange as KeyExchange>::KE1Message: Send,
<<<CS as CipherSuite>::OprfCs as CipherSuite>::Group as Group>::Elem: Send,
impl<CS> Sync for ClientLogin<CS>where
<<CS as CipherSuite>::KeyExchange as KeyExchange>::KE1State: Sync,
<<<CS as CipherSuite>::OprfCs as CipherSuite>::Group as Group>::Scalar: Sync,
<<CS as CipherSuite>::KeyExchange as KeyExchange>::KE1Message: Sync,
<<<CS as CipherSuite>::OprfCs as CipherSuite>::Group as Group>::Elem: Sync,
impl<CS> Unpin for ClientLogin<CS>where
<<CS as CipherSuite>::KeyExchange as KeyExchange>::KE1State: Unpin,
<<<CS as CipherSuite>::OprfCs as CipherSuite>::Group as Group>::Scalar: Unpin,
<<CS as CipherSuite>::KeyExchange as KeyExchange>::KE1Message: Unpin,
<<<CS as CipherSuite>::OprfCs as CipherSuite>::Group as Group>::Elem: Unpin,
impl<CS> UnsafeUnpin for ClientLogin<CS>where
<<CS as CipherSuite>::KeyExchange as KeyExchange>::KE1State: UnsafeUnpin,
<<<CS as CipherSuite>::OprfCs as CipherSuite>::Group as Group>::Scalar: UnsafeUnpin,
<<CS as CipherSuite>::KeyExchange as KeyExchange>::KE1Message: UnsafeUnpin,
<<<CS as CipherSuite>::OprfCs as CipherSuite>::Group as Group>::Elem: UnsafeUnpin,
impl<CS> UnwindSafe for ClientLogin<CS>where
<<CS as CipherSuite>::KeyExchange as KeyExchange>::KE1State: UnwindSafe,
<<<CS as CipherSuite>::OprfCs as CipherSuite>::Group as Group>::Scalar: UnwindSafe,
<<CS as CipherSuite>::KeyExchange as KeyExchange>::KE1Message: UnwindSafe,
<<<CS as CipherSuite>::OprfCs as CipherSuite>::Group as Group>::Elem: UnwindSafe,
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