opaque-borink 0.3.7

Simple configuration of OPAQUE, a passowrd-authenticated key exchange protocol.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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/draft-irtf-cfrg-opaque/)) is an upcoming standard for password authentication. It is more secure than a traditional simple salt and password hash scheme.

It enables a workflow where the server never learns the user password, yet the server does not need to provide the salt to anyone who asks, providing security against pre-computation attacks.

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.

`opaque-borink` is useful as a stand-alone library, but also serves as the core library for `opaquepy` and `@tiptenbrink/opaquewasm`, bindings for Python and WebAssembly, respectively.