Skip to content

Pevensie/argus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Argus

Argon2 password hashing library for Gleam, based on the reference C implementation.

Package Version Hex Docs

This library uses another Pevensie project, jargon, to provide the underlying NIF.

It currently only supports Gleam's Erlang backend.

Example

gleam add argus
import argus

pub fn main() {
  // Hash a password using the recommended settings for Argon2id.
  let assert Ok(hashes) =
    argus.hasher()
    |> argus.hash("password", argus.gen_salt())

  // Hash a password with custom settings and a custom salt.
  let assert Ok(hashes) =
    argus.hasher()
    |> argus.algorithm(argus.Argon2id)
    |> argus.time_cost(3)
    |> argus.memory_cost(12228) // 12 mebibytes
    |> argus.parallelism(1)
    |> argus.hash_length(32)
    |> argus.hash("password", "custom_salt")

  // Verify a password.
  let assert Ok(True) = argus.verify(hashes.encoded_hash, "password")
}

More information can be found in the documentation.

Why 'Argus'?

Argus was the builder of the Argo ship and was one of the Argonauts.

About

Erlang-based Argon2 Password Hashing for Gleam

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •