Files
2026-05-27 23:47:53 +01:00

129 lines
43 KiB
Markdown

# @suaveplan/crypto-hash - Pure-TypeScript hashing substrate — SHA-2 digests, HMAC, HKDF, PBKDF2, Argon2id, hex/Base64 encoding. Zero WASM, zero browser deps.
## Summary
Pure-TypeScript hashing substrate. SHA-2 digests, HMAC, HKDF, PBKDF2,
Argon2id, and hex/Base64 encoding — no WASM, no browser globals, fully
tree-shakeable.
<!-- begin:auto-docs -->
## Documentation tree
- [base64](./src/encoding/base64/base64.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [base64](./src/encoding/base64/base64.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hex](./src/encoding/hex/hex.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hex](./src/encoding/hex/hex.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hash-error](./src/errors/hash-error/hash-error.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hash-error](./src/errors/hash-error/hash-error.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha2](./src/hash/sha2/sha2.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha2](./src/hash/sha2/sha2.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [argon2id](./src/kdf/argon2id/argon2id.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [argon2id](./src/kdf/argon2id/argon2id.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hkdf](./src/kdf/hkdf/hkdf.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hkdf](./src/kdf/hkdf/hkdf.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [pbkdf2](./src/kdf/pbkdf2/pbkdf2.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [pbkdf2](./src/kdf/pbkdf2/pbkdf2.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [argon2id-password](./src/mac/argon2id-password/argon2id-password.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [argon2id-password](./src/mac/argon2id-password/argon2id-password.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [blake2b-password](./src/mac/blake2b-password/blake2b-password.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [blake2b-password](./src/mac/blake2b-password/blake2b-password.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hmac](./src/mac/hmac/hmac.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hmac](./src/mac/hmac/hmac.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [argon2id.select](./src/primitives/argon2id/argon2id.select/argon2id.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [argon2id.select](./src/primitives/argon2id/argon2id.select/argon2id.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [argon2id.native](./src/primitives/argon2id/impl/argon2id.native/argon2id.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [argon2id.native](./src/primitives/argon2id/impl/argon2id.native/argon2id.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [argon2id.noble](./src/primitives/argon2id/impl/argon2id.noble/argon2id.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [argon2id.noble](./src/primitives/argon2id/impl/argon2id.noble/argon2id.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [blake2b](./src/primitives/blake2b/blake2b.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- blake2b.noble — <!-- begin:auto-docs --> _(no submod…
- [blake2b.noble](./src/primitives/blake2b/impl/blake2b.noble/blake2b.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [blake2b.noble](./src/primitives/blake2b/impl/blake2b.noble/blake2b.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [blake2b](./src/primitives/blake2b/blake2b.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- blake2b.noble — <!-- begin:auto-docs --> _(no submod…
- [hkdf.select](./src/primitives/hkdf/hkdf.select/hkdf.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hkdf.select](./src/primitives/hkdf/hkdf.select/hkdf.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hkdf.native](./src/primitives/hkdf/impl/hkdf.native/hkdf.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hkdf.native](./src/primitives/hkdf/impl/hkdf.native/hkdf.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hkdf.noble](./src/primitives/hkdf/impl/hkdf.noble/hkdf.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hkdf.noble](./src/primitives/hkdf/impl/hkdf.noble/hkdf.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hmac.select](./src/primitives/hmac/hmac.select/hmac.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hmac.select](./src/primitives/hmac/hmac.select/hmac.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hmac.native](./src/primitives/hmac/impl/hmac.native/hmac.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hmac.native](./src/primitives/hmac/impl/hmac.native/hmac.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hmac.noble](./src/primitives/hmac/impl/hmac.noble/hmac.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [hmac.noble](./src/primitives/hmac/impl/hmac.noble/hmac.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [pbkdf2.native](./src/primitives/pbkdf2/impl/pbkdf2.native/pbkdf2.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [pbkdf2.native](./src/primitives/pbkdf2/impl/pbkdf2.native/pbkdf2.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [pbkdf2.noble](./src/primitives/pbkdf2/impl/pbkdf2.noble/pbkdf2.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [pbkdf2.noble](./src/primitives/pbkdf2/impl/pbkdf2.noble/pbkdf2.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [pbkdf2.select](./src/primitives/pbkdf2/pbkdf2.select/pbkdf2.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [pbkdf2.select](./src/primitives/pbkdf2/pbkdf2.select/pbkdf2.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [scrypt](./src/primitives/scrypt/scrypt.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- scrypt.noble — <!-- begin:auto-docs --> _(no submodu…
- [scrypt.noble](./src/primitives/scrypt/impl/scrypt.noble/scrypt.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [scrypt.noble](./src/primitives/scrypt/impl/scrypt.noble/scrypt.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [scrypt](./src/primitives/scrypt/scrypt.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- scrypt.noble — <!-- begin:auto-docs --> _(no submodu…
- [sha256.native](./src/primitives/sha256/impl/sha256.native/sha256.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha256.native](./src/primitives/sha256/impl/sha256.native/sha256.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha256.noble](./src/primitives/sha256/impl/sha256.noble/sha256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha256.noble](./src/primitives/sha256/impl/sha256.noble/sha256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha256.select](./src/primitives/sha256/sha256.select/sha256.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha256.select](./src/primitives/sha256/sha256.select/sha256.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha384.native](./src/primitives/sha384/impl/sha384.native/sha384.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha384.native](./src/primitives/sha384/impl/sha384.native/sha384.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha384.noble](./src/primitives/sha384/impl/sha384.noble/sha384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha384.noble](./src/primitives/sha384/impl/sha384.noble/sha384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha384.select](./src/primitives/sha384/sha384.select/sha384.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha384.select](./src/primitives/sha384/sha384.select/sha384.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha512.native](./src/primitives/sha512/impl/sha512.native/sha512.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha512.native](./src/primitives/sha512/impl/sha512.native/sha512.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha512.noble](./src/primitives/sha512/impl/sha512.noble/sha512.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha512.noble](./src/primitives/sha512/impl/sha512.noble/sha512.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha512.select](./src/primitives/sha512/sha512.select/sha512.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [sha512.select](./src/primitives/sha512/sha512.select/sha512.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
<!-- end:auto-docs --> - [base64](./src/encoding/base64/base64.md) — <!-- begin:auto-docs --> _(no submodules)_- [hex](./src/encoding/hex/hex.md) — <!-- begin:auto-docs --> _(no submodules)_- [hex](./src/encoding/hex/hex.md) — <!-- begin:auto-docs --> _(no submodules)_- [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_- [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_- [hash-error](./src/errors/hash-error/hash-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [hash-error](./src/errors/hash-error/hash-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha2](./src/hash/sha2/sha2.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha2](./src/hash/sha2/sha2.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id](./src/kdf/argon2id/argon2id.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id](./src/kdf/argon2id/argon2id.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf](./src/kdf/hkdf/hkdf.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf](./src/kdf/hkdf/hkdf.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2](./src/kdf/pbkdf2/pbkdf2.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2](./src/kdf/pbkdf2/pbkdf2.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id-password](./src/mac/argon2id-password/argon2id-password.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id-password](./src/mac/argon2id-password/argon2id-password.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b-password](./src/mac/blake2b-password/blake2b-password.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b-password](./src/mac/blake2b-password/blake2b-password.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac](./src/mac/hmac/hmac.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac](./src/mac/hmac/hmac.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.select](./src/primitives/argon2id/argon2id.select/argon2id.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.select](./src/primitives/argon2id/argon2id.select/argon2id.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.native](./src/primitives/argon2id/impl/argon2id.native/argon2id.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.native](./src/primitives/argon2id/impl/argon2id.native/argon2id.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.noble](./src/primitives/argon2id/impl/argon2id.noble/argon2id.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.noble](./src/primitives/argon2id/impl/argon2id.noble/argon2id.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b](./src/primitives/blake2b/blake2b.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b.noble](./src/primitives/blake2b/impl/blake2b.noble/blake2b.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b.noble](./src/primitives/blake2b/impl/blake2b.noble/blake2b.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b](./src/primitives/blake2b/blake2b.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.select](./src/primitives/hkdf/hkdf.select/hkdf.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.select](./src/primitives/hkdf/hkdf.select/hkdf.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.native](./src/primitives/hkdf/impl/hkdf.native/hkdf.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.native](./src/primitives/hkdf/impl/hkdf.native/hkdf.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.noble](./src/primitives/hkdf/impl/hkdf.noble/hkdf.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.noble](./src/primitives/hkdf/impl/hkdf.noble/hkdf.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.select](./src/primitives/hmac/hmac.select/hmac.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.select](./src/primitives/hmac/hmac.select/hmac.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.native](./src/primitives/hmac/impl/hmac.native/hmac.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.native](./src/primitives/hmac/impl/hmac.native/hmac.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.noble](./src/primitives/hmac/impl/hmac.noble/hmac.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.noble](./src/primitives/hmac/impl/hmac.noble/hmac.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.native](./src/primitives/pbkdf2/impl/pbkdf2.native/pbkdf2.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.native](./src/primitives/pbkdf2/impl/pbkdf2.native/pbkdf2.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.noble](./src/primitives/pbkdf2/impl/pbkdf2.noble/pbkdf2.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.noble](./src/primitives/pbkdf2/impl/pbkdf2.noble/pbkdf2.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.select](./src/primitives/pbkdf2/pbkdf2.select/pbkdf2.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.select](./src/primitives/pbkdf2/pbkdf2.select/pbkdf2.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [scrypt](./src/primitives/scrypt/scrypt.md) — <!-- begin:auto-docs --> _(no submodules)_- [scrypt.noble](./src/primitives/scrypt/impl/scrypt.noble/scrypt.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [scrypt.noble](./src/primitives/scrypt/impl/scrypt.noble/scrypt.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [scrypt](./src/primitives/scrypt/scrypt.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.native](./src/primitives/sha256/impl/sha256.native/sha256.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.native](./src/primitives/sha256/impl/sha256.native/sha256.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.noble](./src/primitives/sha256/impl/sha256.noble/sha256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.noble](./src/primitives/sha256/impl/sha256.noble/sha256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.select](./src/primitives/sha256/sha256.select/sha256.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.select](./src/primitives/sha256/sha256.select/sha256.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.native](./src/primitives/sha384/impl/sha384.native/sha384.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.native](./src/primitives/sha384/impl/sha384.native/sha384.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.noble](./src/primitives/sha384/impl/sha384.noble/sha384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.noble](./src/primitives/sha384/impl/sha384.noble/sha384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.select](./src/primitives/sha384/sha384.select/sha384.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.select](./src/primitives/sha384/sha384.select/sha384.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.native](./src/primitives/sha512/impl/sha512.native/sha512.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.native](./src/primitives/sha512/impl/sha512.native/sha512.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.noble](./src/primitives/sha512/impl/sha512.noble/sha512.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.noble](./src/primitives/sha512/impl/sha512.noble/sha512.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.select](./src/primitives/sha512/sha512.select/sha512.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.select](./src/primitives/sha512/sha512.select/sha512.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [base64](./src/encoding/base64/base64.md) — <!-- begin:auto-docs --> _(no submodules)_- [hex](./src/encoding/hex/hex.md) — <!-- begin:auto-docs --> _(no submodules)_- [hex](./src/encoding/hex/hex.md) — <!-- begin:auto-docs --> _(no submodules)_- [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_- [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_- [hash-error](./src/errors/hash-error/hash-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [hash-error](./src/errors/hash-error/hash-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha2](./src/hash/sha2/sha2.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha2](./src/hash/sha2/sha2.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id](./src/kdf/argon2id/argon2id.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id](./src/kdf/argon2id/argon2id.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf](./src/kdf/hkdf/hkdf.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf](./src/kdf/hkdf/hkdf.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2](./src/kdf/pbkdf2/pbkdf2.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2](./src/kdf/pbkdf2/pbkdf2.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id-password](./src/mac/argon2id-password/argon2id-password.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id-password](./src/mac/argon2id-password/argon2id-password.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b-password](./src/mac/blake2b-password/blake2b-password.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b-password](./src/mac/blake2b-password/blake2b-password.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac](./src/mac/hmac/hmac.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac](./src/mac/hmac/hmac.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.select](./src/primitives/argon2id/argon2id.select/argon2id.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.select](./src/primitives/argon2id/argon2id.select/argon2id.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.native](./src/primitives/argon2id/impl/argon2id.native/argon2id.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.native](./src/primitives/argon2id/impl/argon2id.native/argon2id.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.noble](./src/primitives/argon2id/impl/argon2id.noble/argon2id.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.noble](./src/primitives/argon2id/impl/argon2id.noble/argon2id.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b](./src/primitives/blake2b/blake2b.md) — <!-- begin:auto-docs --> _(no submodules)_- blake2b.noble — <!-- begin:a…
- [blake2b.noble](./src/primitives/blake2b/impl/blake2b.noble/blake2b.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b.noble](./src/primitives/blake2b/impl/blake2b.noble/blake2b.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b](./src/primitives/blake2b/blake2b.md) — <!-- begin:auto-docs --> _(no submodules)_- blake2b.noble — <!-- begin:a…
- [hkdf.select](./src/primitives/hkdf/hkdf.select/hkdf.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.select](./src/primitives/hkdf/hkdf.select/hkdf.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.native](./src/primitives/hkdf/impl/hkdf.native/hkdf.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.native](./src/primitives/hkdf/impl/hkdf.native/hkdf.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.noble](./src/primitives/hkdf/impl/hkdf.noble/hkdf.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.noble](./src/primitives/hkdf/impl/hkdf.noble/hkdf.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.select](./src/primitives/hmac/hmac.select/hmac.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.select](./src/primitives/hmac/hmac.select/hmac.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.native](./src/primitives/hmac/impl/hmac.native/hmac.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.native](./src/primitives/hmac/impl/hmac.native/hmac.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.noble](./src/primitives/hmac/impl/hmac.noble/hmac.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.noble](./src/primitives/hmac/impl/hmac.noble/hmac.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.native](./src/primitives/pbkdf2/impl/pbkdf2.native/pbkdf2.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.native](./src/primitives/pbkdf2/impl/pbkdf2.native/pbkdf2.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.noble](./src/primitives/pbkdf2/impl/pbkdf2.noble/pbkdf2.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.noble](./src/primitives/pbkdf2/impl/pbkdf2.noble/pbkdf2.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.select](./src/primitives/pbkdf2/pbkdf2.select/pbkdf2.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.select](./src/primitives/pbkdf2/pbkdf2.select/pbkdf2.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [scrypt](./src/primitives/scrypt/scrypt.md) — <!-- begin:auto-docs --> _(no submodules)_- scrypt.noble — <!-- begin:au…
- [scrypt.noble](./src/primitives/scrypt/impl/scrypt.noble/scrypt.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [scrypt.noble](./src/primitives/scrypt/impl/scrypt.noble/scrypt.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [scrypt](./src/primitives/scrypt/scrypt.md) — <!-- begin:auto-docs --> _(no submodules)_- scrypt.noble — <!-- begin:au…
- [sha256.native](./src/primitives/sha256/impl/sha256.native/sha256.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.native](./src/primitives/sha256/impl/sha256.native/sha256.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.noble](./src/primitives/sha256/impl/sha256.noble/sha256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.noble](./src/primitives/sha256/impl/sha256.noble/sha256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.select](./src/primitives/sha256/sha256.select/sha256.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.select](./src/primitives/sha256/sha256.select/sha256.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.native](./src/primitives/sha384/impl/sha384.native/sha384.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.native](./src/primitives/sha384/impl/sha384.native/sha384.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.noble](./src/primitives/sha384/impl/sha384.noble/sha384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.noble](./src/primitives/sha384/impl/sha384.noble/sha384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.select](./src/primitives/sha384/sha384.select/sha384.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.select](./src/primitives/sha384/sha384.select/sha384.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.native](./src/primitives/sha512/impl/sha512.native/sha512.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.native](./src/primitives/sha512/impl/sha512.native/sha512.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.noble](./src/primitives/sha512/impl/sha512.noble/sha512.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.noble](./src/primitives/sha512/impl/sha512.noble/sha512.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.select](./src/primitives/sha512/sha512.select/sha512.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.select](./src/primitives/sha512/sha512.select/sha512.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [base64](./src/encoding/base64/base64.md) — <!-- begin:auto-docs --> _(no submodules)_- [hex](./src/encoding/hex/hex.md) — <!-- begin:auto-docs --> _(no submodules)_- [hex](./src/encoding/hex/hex.md) — <!-- begin:auto-docs --> _(no submodules)_- [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_- [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_- [hash-error](./src/errors/hash-error/hash-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [hash-error](./src/errors/hash-error/hash-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha2](./src/hash/sha2/sha2.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha2](./src/hash/sha2/sha2.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id](./src/kdf/argon2id/argon2id.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id](./src/kdf/argon2id/argon2id.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf](./src/kdf/hkdf/hkdf.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf](./src/kdf/hkdf/hkdf.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2](./src/kdf/pbkdf2/pbkdf2.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2](./src/kdf/pbkdf2/pbkdf2.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id-password](./src/mac/argon2id-password/argon2id-password.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id-password](./src/mac/argon2id-password/argon2id-password.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b-password](./src/mac/blake2b-password/blake2b-password.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b-password](./src/mac/blake2b-password/blake2b-password.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac](./src/mac/hmac/hmac.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac](./src/mac/hmac/hmac.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.select](./src/primitives/argon2id/argon2id.select/argon2id.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.select](./src/primitives/argon2id/argon2id.select/argon2id.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.native](./src/primitives/argon2id/impl/argon2id.native/argon2id.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.native](./src/primitives/argon2id/impl/argon2id.native/argon2id.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.noble](./src/primitives/argon2id/impl/argon2id.noble/argon2id.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.noble](./src/primitives/argon2id/impl/argon2id.noble/argon2id.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b](./src/primitives/blake2b/blake2b.md) — <!-- begin:auto-docs --> _(no submodules)_- blake2b.noble — <!-- begin:auto-docs --> _(no submo…
- [blake2b.noble](./src/primitives/blake2b/impl/blake2b.noble/blake2b.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b.noble](./src/primitives/blake2b/impl/blake2b.noble/blake2b.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b](./src/primitives/blake2b/blake2b.md) — <!-- begin:auto-docs --> _(no submodules)_- blake2b.noble — <!-- begin:auto-docs --> _(no submo…
- [hkdf.select](./src/primitives/hkdf/hkdf.select/hkdf.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.select](./src/primitives/hkdf/hkdf.select/hkdf.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.native](./src/primitives/hkdf/impl/hkdf.native/hkdf.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.native](./src/primitives/hkdf/impl/hkdf.native/hkdf.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.noble](./src/primitives/hkdf/impl/hkdf.noble/hkdf.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.noble](./src/primitives/hkdf/impl/hkdf.noble/hkdf.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.select](./src/primitives/hmac/hmac.select/hmac.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.select](./src/primitives/hmac/hmac.select/hmac.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.native](./src/primitives/hmac/impl/hmac.native/hmac.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.native](./src/primitives/hmac/impl/hmac.native/hmac.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.noble](./src/primitives/hmac/impl/hmac.noble/hmac.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.noble](./src/primitives/hmac/impl/hmac.noble/hmac.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.native](./src/primitives/pbkdf2/impl/pbkdf2.native/pbkdf2.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.native](./src/primitives/pbkdf2/impl/pbkdf2.native/pbkdf2.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.noble](./src/primitives/pbkdf2/impl/pbkdf2.noble/pbkdf2.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.noble](./src/primitives/pbkdf2/impl/pbkdf2.noble/pbkdf2.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.select](./src/primitives/pbkdf2/pbkdf2.select/pbkdf2.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.select](./src/primitives/pbkdf2/pbkdf2.select/pbkdf2.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [scrypt](./src/primitives/scrypt/scrypt.md) — <!-- begin:auto-docs --> _(no submodules)_- scrypt.noble — <!-- begin:auto-docs --> _(no submod…
- [scrypt.noble](./src/primitives/scrypt/impl/scrypt.noble/scrypt.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [scrypt.noble](./src/primitives/scrypt/impl/scrypt.noble/scrypt.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [scrypt](./src/primitives/scrypt/scrypt.md) — <!-- begin:auto-docs --> _(no submodules)_- scrypt.noble — <!-- begin:auto-docs --> _(no submod…
- [sha256.native](./src/primitives/sha256/impl/sha256.native/sha256.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.native](./src/primitives/sha256/impl/sha256.native/sha256.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.noble](./src/primitives/sha256/impl/sha256.noble/sha256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.noble](./src/primitives/sha256/impl/sha256.noble/sha256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.select](./src/primitives/sha256/sha256.select/sha256.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.select](./src/primitives/sha256/sha256.select/sha256.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.native](./src/primitives/sha384/impl/sha384.native/sha384.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.native](./src/primitives/sha384/impl/sha384.native/sha384.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.noble](./src/primitives/sha384/impl/sha384.noble/sha384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.noble](./src/primitives/sha384/impl/sha384.noble/sha384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.select](./src/primitives/sha384/sha384.select/sha384.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.select](./src/primitives/sha384/sha384.select/sha384.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.native](./src/primitives/sha512/impl/sha512.native/sha512.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.native](./src/primitives/sha512/impl/sha512.native/sha512.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.noble](./src/primitives/sha512/impl/sha512.noble/sha512.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.noble](./src/primitives/sha512/impl/sha512.noble/sha512.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.select](./src/primitives/sha512/sha512.select/sha512.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.select](./src/primitives/sha512/sha512.select/sha512.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [base64](./src/encoding/base64/base64.md) — <!-- begin:auto-docs --> _(no submodules)_- [hex](./src/encoding/hex/hex.md) — <!-- begin:auto-docs --> _(no submodules)_ - [hex](./src/encoding/hex/hex.md) — <!-- begin:auto-docs --> _(no submodules)_- [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_ - [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_- [hash-error](./src/errors/hash-error/hash-error.md) — <!-- begin:auto-docs --> _(no submodules)_ - [hash-error](./src/errors/hash-error/hash-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha2](./src/hash/sha2/sha2.md) — <!-- begin:auto-docs --> _(no submodules)_ - [sha2](./src/hash/sha2/sha2.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id](./src/kdf/argon2id/argon2id.md) — <!-- begin:auto-docs --> _(no submodules)_ - [argon2id](./src/kdf/argon2id/argon2id.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf](./src/kdf/hkdf/hkdf.md) — <!-- begin:auto-docs --> _(no submodules)_ - [hkdf](./src/kdf/hkdf/hkdf.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2](./src/kdf/pbkdf2/pbkdf2.md) — <!-- begin:auto-docs --> _(no submodules)_ - [pbkdf2](./src/kdf/pbkdf2/pbkdf2.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id-password](./src/mac/argon2id-password/argon2id-password.md) — <!-- begin:auto-docs --> _(no submodules)_ - [argon2id-password](./src/mac/argon2id-password/argon2id-password.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b-password](./src/mac/blake2b-password/blake2b-password.md) — <!-- begin:auto-docs --> _(no submodules)_ - [blake2b-password](./src/mac/blake2b-password/blake2b-password.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac](./src/mac/hmac/hmac.md) — <!-- begin:auto-docs --> _(no submodules)_ - [hmac](./src/mac/hmac/hmac.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.select](./src/primitives/argon2id/argon2id.select/argon2id.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [argon2id.select](./src/primitives/argon2id/argon2id.select/argon2id.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.native](./src/primitives/argon2id/impl/argon2id.native/argon2id.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [argon2id.native](./src/primitives/argon2id/impl/argon2id.native/argon2id.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [argon2id.noble](./src/primitives/argon2id/impl/argon2id.noble/argon2id.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [argon2id.noble](./src/primitives/argon2id/impl/argon2id.noble/argon2id.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [blake2b](./src/primitives/blake2b/blake2b.md) — <!-- begin:auto-docs --> _(no submodules)_ - [blake2b.noble](./src/primitives/blake2b/impl/blake2b.noble/blake2b.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [blake2b.noble](./src/primitives/blake2b/impl/blake2b.noble/blake2b.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [blake2b](./src/primitives/blake2b/blake2b.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.select](./src/primitives/hkdf/hkdf.select/hkdf.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [hkdf.select](./src/primitives/hkdf/hkdf.select/hkdf.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.native](./src/primitives/hkdf/impl/hkdf.native/hkdf.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [hkdf.native](./src/primitives/hkdf/impl/hkdf.native/hkdf.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [hkdf.noble](./src/primitives/hkdf/impl/hkdf.noble/hkdf.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [hkdf.noble](./src/primitives/hkdf/impl/hkdf.noble/hkdf.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.select](./src/primitives/hmac/hmac.select/hmac.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [hmac.select](./src/primitives/hmac/hmac.select/hmac.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.native](./src/primitives/hmac/impl/hmac.native/hmac.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [hmac.native](./src/primitives/hmac/impl/hmac.native/hmac.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [hmac.noble](./src/primitives/hmac/impl/hmac.noble/hmac.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [hmac.noble](./src/primitives/hmac/impl/hmac.noble/hmac.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.native](./src/primitives/pbkdf2/impl/pbkdf2.native/pbkdf2.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [pbkdf2.native](./src/primitives/pbkdf2/impl/pbkdf2.native/pbkdf2.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.noble](./src/primitives/pbkdf2/impl/pbkdf2.noble/pbkdf2.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [pbkdf2.noble](./src/primitives/pbkdf2/impl/pbkdf2.noble/pbkdf2.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [pbkdf2.select](./src/primitives/pbkdf2/pbkdf2.select/pbkdf2.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [pbkdf2.select](./src/primitives/pbkdf2/pbkdf2.select/pbkdf2.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [scrypt](./src/primitives/scrypt/scrypt.md) — <!-- begin:auto-docs --> _(no submodules)_ - [scrypt.noble](./src/primitives/scrypt/impl/scrypt.noble/scrypt.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [scrypt.noble](./src/primitives/scrypt/impl/scrypt.noble/scrypt.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [scrypt](./src/primitives/scrypt/scrypt.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.native](./src/primitives/sha256/impl/sha256.native/sha256.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [sha256.native](./src/primitives/sha256/impl/sha256.native/sha256.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.noble](./src/primitives/sha256/impl/sha256.noble/sha256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [sha256.noble](./src/primitives/sha256/impl/sha256.noble/sha256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha256.select](./src/primitives/sha256/sha256.select/sha256.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [sha256.select](./src/primitives/sha256/sha256.select/sha256.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.native](./src/primitives/sha384/impl/sha384.native/sha384.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [sha384.native](./src/primitives/sha384/impl/sha384.native/sha384.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.noble](./src/primitives/sha384/impl/sha384.noble/sha384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [sha384.noble](./src/primitives/sha384/impl/sha384.noble/sha384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha384.select](./src/primitives/sha384/sha384.select/sha384.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [sha384.select](./src/primitives/sha384/sha384.select/sha384.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.native](./src/primitives/sha512/impl/sha512.native/sha512.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [sha512.native](./src/primitives/sha512/impl/sha512.native/sha512.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.noble](./src/primitives/sha512/impl/sha512.noble/sha512.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [sha512.noble](./src/primitives/sha512/impl/sha512.noble/sha512.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [sha512.select](./src/primitives/sha512/sha512.select/sha512.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [sha512.select](./src/primitives/sha512/sha512.select/sha512.select.md) — <!-- begin:auto-docs --> _(no submodules)_
## Packages
| Module | File | Exports |
|--------|------|---------|
| SHA-2 digests | [src/hash/sha2.md](src/hash/sha2.md) | `sha256`, `sha384`, `sha512`, `hash`, `HashAlgorithm` |
| HMAC | [src/mac/hmac.md](src/mac/hmac.md) | `hmac` |
| HKDF | [src/kdf/hkdf.md](src/kdf/hkdf.md) | `hkdf`, `HkdfOptions` |
| PBKDF2 | [src/kdf/pbkdf2.md](src/kdf/pbkdf2.md) | `pbkdf2`, `PBKDF2_MIN_ITERATIONS`, `Pbkdf2Options` |
| Argon2id | [src/kdf/argon2id.md](src/kdf/argon2id.md) | `argon2id`, `ARGON2ID_MIN_*`, `Argon2idOptions` |
| Hex encoding | [src/encoding/hex.md](src/encoding/hex.md) | `toHex`, `fromHex` |
| Base64 encoding | [src/encoding/base64.md](src/encoding/base64.md) | `toBase64`, `fromBase64`, `toBase64Url`, `fromBase64Url` |
| Errors | — | `HashError`, `HASH_CODES`, `HashCode` |
## Quick start
```ts
import { sha256, toHex } from "@suaveplan/crypto-hash";
const digest = sha256(new TextEncoder().encode("hello world"));
console.log(toHex(digest));
```
## Subpath imports
```ts
import { sha256 } from "@suaveplan/crypto-hash/hash";
import { hmac } from "@suaveplan/crypto-hash/mac";
import { hkdf, pbkdf2, argon2id } from "@suaveplan/crypto-hash/kdf";
import { toHex, fromBase64Url } from "@suaveplan/crypto-hash/encoding";
import { HashError, HASH_CODES } from "@suaveplan/crypto-hash/errors";
```
## License
MIT