Crate zemi_identity
source ·Expand description
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)
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());
Structs
An identity that includes public and private key components.
This can be used to both sign and verify.
An ed25519 keypair.
Identity that includes only public components.
This can be used to verify, but not sign.
An ed25519 public key.
An EdDSA secret key.
Ed25519 signature.
Enums
Possible errors thrown by methods implemented for Identity and it’s public counterpart.
The version of the derivation algorithm that turns credentials into keys.