#wow #world-of-warcraft #login #srp6

wow_srp

Server and client library for the World of Warcraft flavor of SRP6 with support for reconnection

12 unstable releases (5 breaking)

0.6.0 May 20, 2023
0.5.3 Nov 4, 2022
0.5.2 Oct 19, 2022
0.4.2 Jun 3, 2022
0.2.0 Jul 5, 2021

#117 in Authentication

Download history 11/week @ 2023-06-04 10/week @ 2023-06-11 45/week @ 2023-06-18 15/week @ 2023-06-25 47/week @ 2023-07-02 8/week @ 2023-07-09 117/week @ 2023-07-16 16/week @ 2023-07-23 92/week @ 2023-07-30 17/week @ 2023-08-06 26/week @ 2023-08-13 10/week @ 2023-08-20 67/week @ 2023-08-27 25/week @ 2023-09-03 22/week @ 2023-09-10 35/week @ 2023-09-17

149 downloads per month
Used in wow_world_messages

MIT/Apache and maybe LGPL-3.0+

2.5MB
4K SLoC

WoW_SRP

A standalone Rust library for the World of Warcraft flavor of SRP6. Has functionality for both the client and server.

Usage

Add the following to Cargo.toml:

[dependencies]
wow_srp = "0.6.0"

Or install with cargo edit:

cargo add wow_srp

Then read the documentation at docs.rs.

Examples

The wow_messages repo has examples that uses the wow_login_messages and wow_vanilla_messages library message definitions to showcase both crates.

Features

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.6.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.

MSRV

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).

License

Licensed under either of

at your option.

Contribution

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.

Dependencies

~0.5–4.5MB
~91K SLoC