pub struct SrpClient { /* private fields */ }Expand description
Estado do cliente para um handshake SRP.
Implementations§
Source§impl SrpClient
impl SrpClient
Sourcepub fn with_secret(hash: SrpHash, secret: &[u8]) -> Self
pub fn with_secret(hash: SrpHash, secret: &[u8]) -> Self
Constrói com um segredo fornecido pelo chamador (usado por testes para determinismo).
Sourcepub fn hash(&self) -> SrpHash
pub fn hash(&self) -> SrpHash
Família de hash usada pelo cliente SRP (Srp = SHA-1, Srp256 = SHA-256).
Sourcepub fn set_hash(&mut self, hash: SrpHash)
pub fn set_hash(&mut self, hash: SrpHash)
Troca a família de hash assim que o servidor nos informa qual plugin escolheu.
A é independente do hash, então isso é seguro depois que a chave pública foi enviada.
Sourcepub fn public_key_hex(&self) -> String
pub fn public_key_hex(&self) -> String
A chave pública do cliente A como string hex em minúsculas (forma do wire).
Sourcepub fn proof(
&self,
user: &str,
password: &str,
salt: &[u8],
b_pub: &BigUint,
) -> Result<(Vec<u8>, Vec<u8>)>
pub fn proof( &self, user: &str, password: &str, salt: &[u8], b_pub: &BigUint, ) -> Result<(Vec<u8>, Vec<u8>)>
Calcula a prova do cliente M e a chave de sessão K a partir do salt
do servidor e da chave pública B.
Retorna (proof, session_key). proof é enviada (codificada em hex) em
op_cont_auth; session_key chaveia a cifra do wire.
Aborta (conforme o SRP-6a) se o efêmero do servidor for inválido —
B mod N == 0 ou o parâmetro de embaralhamento u == 0 — situações que
um servidor malicioso/MITM poderia forçar para degenerar o segredo.