zemi-identity

Crates.iozemi-identity
lib.rszemi-identity
version0.1.1
created_at2022-11-15 03:18:30.045336+00
updated_at2022-11-16 00:14:19.03278+00
descriptionIdentity tools that can be used to create credentials without a trusted third party. This library can deterministically produce an asymmetric keypair from user credentials. It also generates a consistent public identity tied to the provided username that cannot easily be used to discover the username.
homepage
repositoryhttps://github.com/Hedzer/zemi-identity
max_upload_size
id715429
size19,268
Hedzer Ferwerda (Hedzer)

documentation

https://docs.rs/zemi-identity/

README

zemi-identity

Zemi Identity

Identity tools that can be used to create credentials without a trusted third party. This library can deterministically produce an asymmetric keypair from user credentials. It also generates a consistent public identity tied to the provided username that cannot easily be used to discover the username.

Important Exports

Version 1 (current)

  • Uses Argon2di to derive key material.
  • Uses ed25519 elliptical curve cryptography for keys.

Example: From Credentials

let identity = Identity::from_credentials("username", "password", "salt", Version::V1)?;
let signature = identity.sign(b"message")?;
let verify_op = identity.verify(b"message", &signature);
assert!(verify_op.is_ok());

Example: To Public Identity

let identity = Identity::from_credentials("username", "password", "salt", Version::V1)?;
let public = identity.to_public_identity();
let verify_op = public.verify(b"message", &signature);
assert!(verify_op.is_ok());
Commit count: 0

cargo fmt