diff options
author | newpavlov <newpavlov@gmail.com> | 2018-04-14 13:06:36 +0300 |
---|---|---|
committer | newpavlov <newpavlov@gmail.com> | 2018-04-14 13:06:36 +0300 |
commit | 1afa40d15b0c2cecc989bdfc67a5251aa5cd5954 (patch) | |
tree | 66358dc0cd7034106fc29791edc190b45b893ca0 /srp/src | |
parent | 875a95ab7c9bc7d1b506e6e47b2a0edaed37dde8 (diff) | |
download | PAKEs-1afa40d15b0c2cecc989bdfc67a5251aa5cd5954.tar.xz |
doc update
Diffstat (limited to 'srp/src')
-rw-r--r-- | srp/src/lib.rs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/srp/src/lib.rs b/srp/src/lib.rs index 03c6bc3..472b197 100644 --- a/srp/src/lib.rs +++ b/srp/src/lib.rs @@ -33,15 +33,15 @@ //! a generator modulo `N`. It's STRONGLY recommended to use SRP parameters //! provided by this crate in the [`groups`](groups/index.html) module. //! -//! Client | | Server -//! ------------------------|-------------------|------------------------ -//! `a_pub = g^a` | — `a_pub`, `I` —> | (lookup `s`, `v` for given `I`) -//! `x = PH(P, s)` | <— `b_pub`, `s` — | `b_pub = k*v + g^b` -//! `u = H(a_pub || b_pub)` | | `u = H(a_pub || b_pub)` -//! `s = (b_pub - k*g^x)^(a+u*x)` | | `S = (b_pub - k*g^x)^(a+u*x)` -//! `K = H(s)` | | `K = H(s)` -//! `M1 = H(A || B || K)` | — `M1` —> | (verify `M1`) -//! (verify `M2`) | <— `M2` — | `M2 = H(A || M1 || K)` +//! | Client | Data transfer | Server | +//! |------------------------|-------------------|---------------------------------| +//! |`a_pub = g^a` | — `a_pub`, `I` —> | (lookup `s`, `v` for given `I`) | +//! |`x = PH(P, s)` | <— `b_pub`, `s` — | `b_pub = k*v + g^b` | +//! |`u = H(a_pub ‖ b_pub)` | | `u = H(a_pub ‖ b_pub)` | +//! |`s = (b_pub - k*g^x)^(a+u*x)` | | `S = (b_pub - k*g^x)^(a+u*x)` | +//! |`K = H(s)` | | `K = H(s)` | +//! |`M1 = H(A ‖ B ‖ K)` | — `M1` —> | (verify `M1`) | +//! |(verify `M2`) | <— `M2` — | `M2 = H(A ‖ M1 ‖ K)` | //! //! Variables and notations have the following //! meaning: @@ -50,9 +50,9 @@ //! - `P` — user password //! - `H` — one-way hash function //! - `PH` — password hashing algroithm, in the RFC 5054 described as -//! `H(s || H(I || ":" || P))` +//! `H(s ‖ H(I ‖ ":" ‖ P))` //! - `^` — (modular) exponentiation -//! - `||` — concatenation +//! - `‖` — concatenation //! - `x` — user private key //! - `s` — salt generated by user and stored on the server //! - `v` — password verifier equal to `g^x` and stored on the server |