Module srp::server
[−]
[src]
SRP server implementation
Usage
First receive user's username and public value a_pub
, retrieve from a
database UserRecord
for a given username and initialize SRP server state:
let mut rng = rand::os::OsRng::new().unwrap(); let (username, a_pub) = conn.receive_handshake(); let user = db.retrieve_user_record(username); let server = SrpServer::<Sha256>::new(&user, &a_pub, &srp_params, &mut rng)?;
Next send to user b_pub
and salt
from user record:
let b_pub = server.get_b_pub(); conn.reply_to_handshake(&user.salt, b_pub);
And finally recieve user proof, verify it and send server proof as reply:
let user_proof = conn.receive_proof(); let server_proof = server.verify(user_proof)?; conn.send_proof(server_proof);
To get the shared secret use get_key
method. As alternative to using
verify
method it's also possible to use this key for authentificated
encryption.
Structs
SrpServer |
SRP server state |
UserRecord |
Data provided by users upon registration, usually stored in the database. |