#opaque #serialization #passwords #wasm-bindings #server-client

opaquebind

Simple interface to opaque-ke and core library for Python and WASM bindings

2 releases

0.2.1 Jan 15, 2022
0.2.0 Jan 13, 2022

#13 in #opaque

Apache-2.0

18KB
291 lines

A simple configuration of the opaque-ke OPAQUE implementation, using a base64url-encoded format to serialize and deserialize the Rust structs.

OPAQUE (see the Internet-Draft) 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 Ristretto group as Group
  • opaque-ke's own TripleDH as KeyExchange
  • sha2 Sha512 as Hash
  • argon2 default Argon2 as SlowHash

It exposes four functions on 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.

Dependencies

~4.5MB
~87K SLoC