A standalone Rust library for the World of Warcraft flavor of SRP6. Has functionality for both the client and server.
Add the following to Cargo.toml
:
[dependencies]
wow_srp = "0.7.0"
Or install with cargo edit:
cargo add wow_srp
Then read the documentation at docs.rs.
The wow_messages
repo has examples that uses the
wow_login_messages
and wow_vanilla_messages
library message definitions to showcase both crates.
Two different arbitrary precision integer libraries can be used, either:
-
num_bigint. A slow pure Rust implementation without external dependencies. This is enabled by default, and requires no opt in.
-
rug. A fast wrapper around the GMP library with external dependencies, as described in the gmp_mpfr_sys documentation. This is enabled with the
srp-fast-math
feature and disabling default features. So instead of the above do this:
[dependencies]
wow_srp = { version = "0.7.0", default-features = false, features = ["srp-fast-math", "wrath-header"] }
The srp-fast-math
feature leads to a 50% decrease in total time. It is highly recommended to enable
this feature for production usage since it also theoretically has better security.
To see the performance difference on your setup you can run cargo bench
for the default version,
and cargo bench --features srp-fast-math --no-default-features
for the srp-fast-math
version.
The wrath-header
feature gates features and dependencies related to [wrath-header
].
wow_srp
has a Minimum Supported Rust Version (MSRV) of 1.65.0.
The MSRV may be increased in PATCH
versions before wow_srp
reaches 1.0.0
(MAJOR.MINOR.PATCH
).
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.