pub struct Srp6<const KEY_LENGTH: usize, const SALT_LENGTH: usize> {
pub N: PrimeModulus,
pub g: Generator,
pub k: MultiplierParameter,
}
Expand description
Main interaction point for the server
Fields
N: PrimeModulus
A large safe prime (N = 2q+1, where q is prime. All arithmetic is done modulo N.
KEY_LENGTH
needs to match the bytes of PrimeModulus
N
g: Generator
A generator modulo N
k: MultiplierParameter
multiplier parameter
Implementations
Trait Implementations
sourceimpl<const KEY_LENGTH: usize, const SALT_LENGTH: usize> Debug for Srp6<KEY_LENGTH, SALT_LENGTH>
impl<const KEY_LENGTH: usize, const SALT_LENGTH: usize> Debug for Srp6<KEY_LENGTH, SALT_LENGTH>
sourceimpl<const KEY_LENGTH: usize, const SALT_LENGTH: usize> HostAPI<KEY_LENGTH, SALT_LENGTH> for Srp6<KEY_LENGTH, SALT_LENGTH>
impl<const KEY_LENGTH: usize, const SALT_LENGTH: usize> HostAPI<KEY_LENGTH, SALT_LENGTH> for Srp6<KEY_LENGTH, SALT_LENGTH>
sourcefn generate_new_user_secrets(
&self,
I: UsernameRef<'_>,
p: &ClearTextPassword
) -> (Salt, PasswordVerifier)
fn generate_new_user_secrets(
&self,
I: UsernameRef<'_>,
p: &ClearTextPassword
) -> (Salt, PasswordVerifier)
creates a new Salt
s
and PasswordVerifier
v
for a new user
sourcefn start_handshake(
&self,
user: &UserDetails
) -> (Handshake<KEY_LENGTH, SALT_LENGTH>, HandshakeProofVerifier)
fn start_handshake(
&self,
user: &UserDetails
) -> (Handshake<KEY_LENGTH, SALT_LENGTH>, HandshakeProofVerifier)
starts a session handshake for a given user
Salt
s
and PasswordVerifier
p
are both user specific,
initially they are generated by HostAPI::generate_new_user_secrets()
Auto Trait Implementations
impl<const KEY_LENGTH: usize, const SALT_LENGTH: usize> RefUnwindSafe for Srp6<KEY_LENGTH, SALT_LENGTH>
impl<const KEY_LENGTH: usize, const SALT_LENGTH: usize> Send for Srp6<KEY_LENGTH, SALT_LENGTH>
impl<const KEY_LENGTH: usize, const SALT_LENGTH: usize> Sync for Srp6<KEY_LENGTH, SALT_LENGTH>
impl<const KEY_LENGTH: usize, const SALT_LENGTH: usize> Unpin for Srp6<KEY_LENGTH, SALT_LENGTH>
impl<const KEY_LENGTH: usize, const SALT_LENGTH: usize> UnwindSafe for Srp6<KEY_LENGTH, SALT_LENGTH>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more