Repository
Current version released
5 years ago
Argon2 for Deno
Argon2 encryption library for Deno.
It uses rust-argon2 under the hood.
Compatibility table
| Library version | Deno Version |
|---|---|
| 0.6.0 | 1.0.0-1.0.3 |
| 0.7.0 | 1.0.5 |
| 0.8.0 | 1.2.3 |
| 0.9.0 | 1.8.3 |
API
hash(password: string, options?: HashOptions): Promise<string>verify(hash: string, password: string): Promise<boolean>
Error handling
In case of error, all methods of this library will throw an
Argon2Error type.
Usage
Library
import { assert } from "https://deno.land/std/testing/asserts.ts";
import { hash, verify } from "https://deno.land/x/argon2/lib/mod.ts";
let hash = await hash("test");
assert(await verify(hash, "test"));Testing
import { Variant } from "https://deno.land/x/argon2/lib/mod.ts";
import { assertArgon2Encoded } from "https://deno.land/x/argon2/lib/testing.ts";
Deno.test("User#password should be an argon2id variant password", async () => {
assertArgon2Encoded(user.password, {
variant: Variant.Argon2id,
});
});CLI
The library can be installed as a CLI tool via deno install.
Installation snippet
```sh
deno install \
-A \
--unstable \
argon2 https://deno.land/x/argon2/cli/argon2.ts
```After install run --help to inspect all possible commands.
Permissions
The library automatically download the static library and initialize Deno plugin
via plugin_prepare and it
requires --allow-read, --allow-write, --allow-net and --allow-plugin.
```sh
deno \
--allow-read .deno_plugins \
--allow-write .deno_plugins \
--allow-net \
--allow-plugin \
--unstable \
lib/mod.ts
```Examples
In the examples/ folder there you can find some usage examples.
To run examples you must
--allow-runsince dev environment builds and initialize the Rust crate.
Available examples
Contributing
Project structure
deno-argon2
βββ lib/ # Core library
βββ native/ # Native glue code
βββ cli/ # CLI wrapper
βββ tests/ # TypeScript tests
βββ benches/ # TypeScript benchmarks
βββ examples/ # Development examples