{"id":37229470,"url":"https://github.com/syaiful6/passe","last_synced_at":"2026-01-15T03:32:52.930Z","repository":{"id":331841375,"uuid":"1131538485","full_name":"syaiful6/passe","owner":"syaiful6","description":"Passe is an OCaml library for hashing and verifying passwords using Bcrypt and Argon2","archived":false,"fork":false,"pushed_at":"2026-01-11T10:46:41.000Z","size":92,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-11T14:59:46.856Z","etag":null,"topics":["argon2","bcrypt","hashing","ocaml","password"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/syaiful6.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"syaiful6"}},"created_at":"2026-01-10T07:52:39.000Z","updated_at":"2026-01-11T10:56:16.000Z","dependencies_parsed_at":"2026-01-11T15:01:50.988Z","dependency_job_id":null,"html_url":"https://github.com/syaiful6/passe","commit_stats":null,"previous_names":["syaiful6/passe"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/syaiful6/passe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syaiful6%2Fpasse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syaiful6%2Fpasse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syaiful6%2Fpasse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syaiful6%2Fpasse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/syaiful6","download_url":"https://codeload.github.com/syaiful6/passe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syaiful6%2Fpasse/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28442288,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T00:55:22.719Z","status":"online","status_checked_at":"2026-01-15T02:00:08.019Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["argon2","bcrypt","hashing","ocaml","password"],"created_at":"2026-01-15T03:32:52.281Z","updated_at":"2026-01-15T03:32:52.925Z","avatar_url":"https://github.com/syaiful6.png","language":"C","funding_links":["https://github.com/sponsors/syaiful6"],"categories":[],"sub_categories":[],"readme":"# Passe - Password hash algorithm\n\nPasse is an OCaml library for hashing and verifying passwords using Bcrypt and Argon2.\n\nThe primary goal of Passe is to provide a simple and secure interface for password hashing,\nand easy to install library. All dependencies are vendored, so no external libraries are required.\n\n## Usage\n\n### Argon2\n\n```ocaml\nlet hash_result = Passe.Argon2.hash \"my_password\"\n\nmatch hash_result with\n| Ok hash -\u003e\n    (* Store the hash in your database *)\n    let hash_string = Passe.hash_to_string hash in\n    store_in_db hash_string\n| Error e -\u003e\n    Format.eprintf \"%a\" Passe.Argon2.pp_error e\n\n(* Verify a password against a stored hash *)\nlet stored_hash = Passe.hash_of_string (get_from_db ()) in\nmatch Passe.Argon2.verify ~hash:stored_hash \"user_input\" with\n| Ok true -\u003e (* Password matches *)\n| Ok false -\u003e (* Password does not match *)\n| Error e -\u003e (* Handle error *)\n\n(* Use custom parameters *)\nlet params = { Passe.Argon2.t_cost = 3; m_cost = 65536; parallelism = 4 } in\nlet hash_result = Passe.Argon2.hash ~params \"my_password\"\n```\n\n### Bcrypt\n\n```ocaml\n\nlet hash_result = Passe.Bcrypt.hash \"my_password\"\n\nmatch hash_result with\n| Ok hash -\u003e\n    let hash_string = Passe.hash_to_string hash in\n    store_in_db hash_string\n| Error e -\u003e\n    Format.eprintf \"%a\" Passe.Bcrypt.pp_error e\n\nlet stored_hash = Passe.hash_of_string (get_from_db ()) in\nmatch Passe.Bcrypt.verify ~hash:stored_hash \"user_input\" with\n| Ok true -\u003e (* Password matches *)\n| Ok false -\u003e (* Password does not match *)\n| Error e -\u003e (* Handle error *)\n\n(* Use custom cost factor *)\nlet hash_result = Bcrypt.hash ~cost:14 \"my_password\"\n```\n\n## Examples\n\nThe `examples/` directory contains cross-language verification tests that demonstrate\ncompatibility with Python's `argon2-cffi` and `bcrypt` libraries.\n\n## License\n\nThis library is licensed under the ISC License. See [LICENSE](LICENSE) for details.\n\n### Third-Party Code\n\nThis library includes vendored implementations:\n\n- **Argon2** reference implementation (dual-licensed CC0 1.0 Universal / Apache 2.0)\n- **Bcrypt** from OpenBSD (ISC License)\n- **Blowfish** cipher from OpenBSD (BSD 4-Clause License)\n\nAll third-party licenses and attributions are included in the [LICENSE](LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyaiful6%2Fpasse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsyaiful6%2Fpasse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyaiful6%2Fpasse/lists"}