This crate was originally named `opaquebind`, but has been renamed to [`opaque-borink`](https://github.com/tiptenbrink/opaque-borink). The last version named `opaquebind` can be found found [here](https://github.com/tiptenbrink/opaque-borink/tree/v0.3.6/opaquebind). A simple configuration of the [opaque-ke](https://github.com/novifinancial/opaque-ke) OPAQUE implementation, using a base64url-encoded format to serialize and deserialize the Rust structs. OPAQUE ([see the Internet-Draft](https://datatracker.ietf.org/doc/html/draft-krawczyk-cfrg-opaque-06)) is an upcoming standard for password authentication. It is more secure than a traditional simple salt and password hash scheme. It uses a basic CipherSuite configured as follows: * [curve25519_dalek](https://github.com/dalek-cryptography/curve25519-dalek) Ristretto group as Group * opaque-ke's own TripleDH as KeyExchange * [sha2](https://github.com/RustCrypto/hashes/tree/master/sha2) Sha512 as Hash * [argon2](https://github.com/RustCrypto/password-hashes/tree/master/argon2) default Argon2 as SlowHash It exposes four functions on both the server and client: login finish/start and register finish/start; as well as a key generation function. `opaquebind` serves as the core library for `opaquepy` and `@tiptenbrink/opaquewasm`, bindings for Python and WebAssembly, respectively.