···4646 {1 Usage}
47474848 {[
4949- let () = Crypto_rng_unix.use_default ()
5050- let username = "alice"
5151- let password = "p@ssword"
4949+ let () = Crypto_rng_unix.use_default ()
5050+ let username = "alice"
5151+ let password = "p@ssword"
52525353- (* Registration: compute verifier to store on server *)
5454- let reg_salt = Crypto_rng.generate 16
5555- let verifier = Srp.compute_verifier ~salt:reg_salt ~username ~password
5353+ (* Registration: compute verifier to store on server *)
5454+ let reg_salt = Crypto_rng.generate 16
5555+ let verifier = Srp.compute_verifier ~salt:reg_salt ~username ~password
56565757- (* Authentication: client and server exchange public keys *)
5858- let client = Srp.Client.create ~username ~password
5959- let big_a = Srp.Client.public_key client
6060-6161- let server = Srp.Server.create ~username ~salt:reg_salt ~verifier
6262- let big_b = Srp.Server.public_key server
6363- let server_salt = Srp.Server.salt server
5757+ (* Authentication: client and server exchange public keys *)
5858+ let client = Srp.Client.create ~username ~password
5959+ let big_a = Srp.Client.public_key client
6060+ let server = Srp.Server.create ~username ~salt:reg_salt ~verifier
6161+ let big_b = Srp.Server.public_key server
6262+ let server_salt = Srp.Server.salt server
64636565- (* Both derive the same session key *)
6666- let key_c =
6767- Result.get_ok
6868- (Srp.Client.compute_session_key client ~salt:server_salt ~big_b)
6969- let key_s =
7070- Result.get_ok (Srp.Server.compute_session_key server ~big_a)
6464+ (* Both derive the same session key *)
6565+ let key_c =
6666+ Result.get_ok
6767+ (Srp.Client.compute_session_key client ~salt:server_salt ~big_b)
71687272- let () = assert (String.equal key_c key_s)
6969+ let key_s = Result.get_ok (Srp.Server.compute_session_key server ~big_a)
7070+ let () = assert (String.equal key_c key_s)
7371 ]} *)
74727573(** {1 Constants} *)