72 lines
27 KiB
Markdown
72 lines
27 KiB
Markdown
# @suaveplan/crypto-cipher - AEAD cipher primitives with per-primitive selector layout: aes-256-gcm, chacha20-poly1305, xchacha20-poly1305. Noble + native impls selected at build time via crypto.config.ts. Nonces are caller-supplied; primitives never generate them internally.
|
|
|
|
## Summary
|
|
|
|
Low-level AEAD (Authenticated Encryption with Associated Data) cipher primitives for the `@suaveplan/crypto` stack. Provides three algorithms — AES-256-GCM, ChaCha20-Poly1305, and XChaCha20-Poly1305 — each as a standalone subpath export for tree-shaking. Nonces are always caller-supplied: the package validates nonce length but never generates randomness internally, keeping the CSPRNG boundary in the caller's control. Implementation flavour (`'noble'` vs `'native'`) is selected at build time via `crypto.config.ts`; all Phase 0 implementations route to `@noble/ciphers`. Use `@suaveplan/crypto` for the high-level façade that combines nonce generation, engine selection, and structured error handling; use this package only when you need to supply your own cipher engine implementation.
|
|
|
|
<!-- begin:auto-docs -->
|
|
## Documentation tree
|
|
|
|
- [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 -->
|
|
- [crypto-cipher-error](./src/errors/crypto-cipher-error/crypto-cipher-error.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [crypto-cipher-error](./src/errors/crypto-cipher-error/crypto-cipher-error.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [aes-256-gcm](./src/primitives/aes-256-gcm/aes-256-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- aes-256-gcm.select — <!-- begin:auto-docs --> _(no s…
|
|
- [aes-256-gcm.select](./src/primitives/aes-256-gcm/aes-256-gcm.select/aes-256-gcm.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [aes-256-gcm.select](./src/primitives/aes-256-gcm/aes-256-gcm.select/aes-256-gcm.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [aes-256-gcm.native](./src/primitives/aes-256-gcm/impl/aes-256-gcm.native/aes-256-gcm.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [aes-256-gcm.native](./src/primitives/aes-256-gcm/impl/aes-256-gcm.native/aes-256-gcm.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [aes-256-gcm.noble](./src/primitives/aes-256-gcm/impl/aes-256-gcm.noble/aes-256-gcm.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [aes-256-gcm.noble](./src/primitives/aes-256-gcm/impl/aes-256-gcm.noble/aes-256-gcm.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [aes-256-gcm](./src/primitives/aes-256-gcm/aes-256-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- aes-256-gcm.select — <!-- begin:auto-docs --> _(no s…
|
|
- [chacha20-poly1305](./src/primitives/chacha20-poly1305/chacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- chacha20-poly1305.select — <!-- begin:auto-docs -->…
|
|
- [chacha20-poly1305.select](./src/primitives/chacha20-poly1305/chacha20-poly1305.select/chacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [chacha20-poly1305.select](./src/primitives/chacha20-poly1305/chacha20-poly1305.select/chacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [chacha20-poly1305.native](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.native/chacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [chacha20-poly1305.native](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.native/chacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [chacha20-poly1305.noble](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.noble/chacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [chacha20-poly1305.noble](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.noble/chacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [chacha20-poly1305](./src/primitives/chacha20-poly1305/chacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- chacha20-poly1305.select — <!-- begin:auto-docs -->…
|
|
- [xchacha20-poly1305](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- xchacha20-poly1305.native — <!-- begin:auto-docs -->…
|
|
- [xchacha20-poly1305.native](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.native/xchacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [xchacha20-poly1305.native](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.native/xchacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [xchacha20-poly1305.noble](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.noble/xchacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [xchacha20-poly1305.noble](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.noble/xchacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [xchacha20-poly1305.select](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.select/xchacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [xchacha20-poly1305.select](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.select/xchacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [xchacha20-poly1305](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- xchacha20-poly1305.native — <!-- begin:auto-docs -->…
|
|
- [streaming-aead](./src/streaming/streaming-aead/streaming-aead.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [streaming-aead](./src/streaming/streaming-aead/streaming-aead.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [streaming-aead-aes-gcm](./src/streaming/streaming-aead-aes-gcm/streaming-aead-aes-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [streaming-aead-aes-gcm](./src/streaming/streaming-aead-aes-gcm/streaming-aead-aes-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [streaming-aead-xchacha20](./src/streaming/streaming-aead-xchacha20/streaming-aead-xchacha20.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
- [streaming-aead-xchacha20](./src/streaming/streaming-aead-xchacha20/streaming-aead-xchacha20.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
|
|
<!-- end:auto-docs --> - [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_- [crypto-cipher-error](./src/errors/crypto-cipher-error/crypto-cipher-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [crypto-cipher-error](./src/errors/crypto-cipher-error/crypto-cipher-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm](./src/primitives/aes-256-gcm/aes-256-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm.select](./src/primitives/aes-256-gcm/aes-256-gcm.select/aes-256-gcm.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm.select](./src/primitives/aes-256-gcm/aes-256-gcm.select/aes-256-gcm.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm.native](./src/primitives/aes-256-gcm/impl/aes-256-gcm.native/aes-256-gcm.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm.native](./src/primitives/aes-256-gcm/impl/aes-256-gcm.native/aes-256-gcm.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm.noble](./src/primitives/aes-256-gcm/impl/aes-256-gcm.noble/aes-256-gcm.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm.noble](./src/primitives/aes-256-gcm/impl/aes-256-gcm.noble/aes-256-gcm.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm](./src/primitives/aes-256-gcm/aes-256-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305](./src/primitives/chacha20-poly1305/chacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305.select](./src/primitives/chacha20-poly1305/chacha20-poly1305.select/chacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305.select](./src/primitives/chacha20-poly1305/chacha20-poly1305.select/chacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305.native](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.native/chacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305.native](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.native/chacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305.noble](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.noble/chacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305.noble](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.noble/chacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305](./src/primitives/chacha20-poly1305/chacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305.native](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.native/xchacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305.native](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.native/xchacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305.noble](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.noble/xchacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305.noble](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.noble/xchacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305.select](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.select/xchacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305.select](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.select/xchacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead](./src/streaming/streaming-aead/streaming-aead.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead](./src/streaming/streaming-aead/streaming-aead.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead-aes-gcm](./src/streaming/streaming-aead-aes-gcm/streaming-aead-aes-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead-aes-gcm](./src/streaming/streaming-aead-aes-gcm/streaming-aead-aes-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead-xchacha20](./src/streaming/streaming-aead-xchacha20/streaming-aead-xchacha20.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead-xchacha20](./src/streaming/streaming-aead-xchacha20/streaming-aead-xchacha20.md) — <!-- begin:auto-docs --> _(no submodules)_- [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_- [crypto-cipher-error](./src/errors/crypto-cipher-error/crypto-cipher-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [crypto-cipher-error](./src/errors/crypto-cipher-error/crypto-cipher-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm](./src/primitives/aes-256-gcm/aes-256-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_- aes-256-gcm.select — <!-- be…
|
|
- [aes-256-gcm.select](./src/primitives/aes-256-gcm/aes-256-gcm.select/aes-256-gcm.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm.select](./src/primitives/aes-256-gcm/aes-256-gcm.select/aes-256-gcm.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm.native](./src/primitives/aes-256-gcm/impl/aes-256-gcm.native/aes-256-gcm.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm.native](./src/primitives/aes-256-gcm/impl/aes-256-gcm.native/aes-256-gcm.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm.noble](./src/primitives/aes-256-gcm/impl/aes-256-gcm.noble/aes-256-gcm.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm.noble](./src/primitives/aes-256-gcm/impl/aes-256-gcm.noble/aes-256-gcm.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm](./src/primitives/aes-256-gcm/aes-256-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_- aes-256-gcm.select — <!-- be…
|
|
- [chacha20-poly1305](./src/primitives/chacha20-poly1305/chacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_- chacha20-poly1305.select — <…
|
|
- [chacha20-poly1305.select](./src/primitives/chacha20-poly1305/chacha20-poly1305.select/chacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305.select](./src/primitives/chacha20-poly1305/chacha20-poly1305.select/chacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305.native](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.native/chacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305.native](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.native/chacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305.noble](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.noble/chacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305.noble](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.noble/chacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305](./src/primitives/chacha20-poly1305/chacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_- chacha20-poly1305.select — <…
|
|
- [xchacha20-poly1305](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_- xchacha20-poly1305.native —…
|
|
- [xchacha20-poly1305.native](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.native/xchacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305.native](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.native/xchacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305.noble](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.noble/xchacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305.noble](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.noble/xchacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305.select](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.select/xchacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305.select](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.select/xchacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_- xchacha20-poly1305.native —…
|
|
- [streaming-aead](./src/streaming/streaming-aead/streaming-aead.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead](./src/streaming/streaming-aead/streaming-aead.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead-aes-gcm](./src/streaming/streaming-aead-aes-gcm/streaming-aead-aes-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead-aes-gcm](./src/streaming/streaming-aead-aes-gcm/streaming-aead-aes-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead-xchacha20](./src/streaming/streaming-aead-xchacha20/streaming-aead-xchacha20.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead-xchacha20](./src/streaming/streaming-aead-xchacha20/streaming-aead-xchacha20.md) — <!-- begin:auto-docs --> _(no submodules)_- [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_- [crypto-cipher-error](./src/errors/crypto-cipher-error/crypto-cipher-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [crypto-cipher-error](./src/errors/crypto-cipher-error/crypto-cipher-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm](./src/primitives/aes-256-gcm/aes-256-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_- aes-256-gcm.select — <!-- begin:auto-docs --> _(no…
|
|
- [aes-256-gcm.select](./src/primitives/aes-256-gcm/aes-256-gcm.select/aes-256-gcm.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm.select](./src/primitives/aes-256-gcm/aes-256-gcm.select/aes-256-gcm.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm.native](./src/primitives/aes-256-gcm/impl/aes-256-gcm.native/aes-256-gcm.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm.native](./src/primitives/aes-256-gcm/impl/aes-256-gcm.native/aes-256-gcm.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm.noble](./src/primitives/aes-256-gcm/impl/aes-256-gcm.noble/aes-256-gcm.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm.noble](./src/primitives/aes-256-gcm/impl/aes-256-gcm.noble/aes-256-gcm.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm](./src/primitives/aes-256-gcm/aes-256-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_- aes-256-gcm.select — <!-- begin:auto-docs --> _(no…
|
|
- [chacha20-poly1305](./src/primitives/chacha20-poly1305/chacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_- chacha20-poly1305.select — <!-- begin:auto-docs -->…
|
|
- [chacha20-poly1305.select](./src/primitives/chacha20-poly1305/chacha20-poly1305.select/chacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305.select](./src/primitives/chacha20-poly1305/chacha20-poly1305.select/chacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305.native](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.native/chacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305.native](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.native/chacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305.noble](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.noble/chacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305.noble](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.noble/chacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305](./src/primitives/chacha20-poly1305/chacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_- chacha20-poly1305.select — <!-- begin:auto-docs -->…
|
|
- [xchacha20-poly1305](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_- xchacha20-poly1305.native — <!-- begin:auto-docs --…
|
|
- [xchacha20-poly1305.native](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.native/xchacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305.native](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.native/xchacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305.noble](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.noble/xchacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305.noble](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.noble/xchacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305.select](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.select/xchacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305.select](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.select/xchacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_- xchacha20-poly1305.native — <!-- begin:auto-docs --…
|
|
- [streaming-aead](./src/streaming/streaming-aead/streaming-aead.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead](./src/streaming/streaming-aead/streaming-aead.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead-aes-gcm](./src/streaming/streaming-aead-aes-gcm/streaming-aead-aes-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead-aes-gcm](./src/streaming/streaming-aead-aes-gcm/streaming-aead-aes-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead-xchacha20](./src/streaming/streaming-aead-xchacha20/streaming-aead-xchacha20.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead-xchacha20](./src/streaming/streaming-aead-xchacha20/streaming-aead-xchacha20.md) — <!-- begin:auto-docs --> _(no submodules)_- [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_- [crypto-cipher-error](./src/errors/crypto-cipher-error/crypto-cipher-error.md) — <!-- begin:auto-docs --> _(no submodules)_ - [crypto-cipher-error](./src/errors/crypto-cipher-error/crypto-cipher-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [aes-256-gcm](./src/primitives/aes-256-gcm/aes-256-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_ - [aes-256-gcm.select](./src/primitives/aes-256-gcm/aes-256-gcm.select/aes-256-gcm.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [aes-256-gcm.select](./src/primitives/aes-256-gcm/aes-256-gcm.select/aes-256-gcm.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [aes-256-gcm.native](./src/primitives/aes-256-gcm/impl/aes-256-gcm.native/aes-256-gcm.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [aes-256-gcm.native](./src/primitives/aes-256-gcm/impl/aes-256-gcm.native/aes-256-gcm.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [aes-256-gcm.noble](./src/primitives/aes-256-gcm/impl/aes-256-gcm.noble/aes-256-gcm.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [aes-256-gcm.noble](./src/primitives/aes-256-gcm/impl/aes-256-gcm.noble/aes-256-gcm.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [aes-256-gcm](./src/primitives/aes-256-gcm/aes-256-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_- [chacha20-poly1305](./src/primitives/chacha20-poly1305/chacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_ - [chacha20-poly1305.select](./src/primitives/chacha20-poly1305/chacha20-poly1305.select/chacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [chacha20-poly1305.select](./src/primitives/chacha20-poly1305/chacha20-poly1305.select/chacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [chacha20-poly1305.native](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.native/chacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [chacha20-poly1305.native](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.native/chacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [chacha20-poly1305.noble](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.noble/chacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [chacha20-poly1305.noble](./src/primitives/chacha20-poly1305/impl/chacha20-poly1305.noble/chacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [chacha20-poly1305](./src/primitives/chacha20-poly1305/chacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_- [xchacha20-poly1305](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_ - [xchacha20-poly1305.native](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.native/xchacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [xchacha20-poly1305.native](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.native/xchacha20-poly1305.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [xchacha20-poly1305.noble](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.noble/xchacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [xchacha20-poly1305.noble](./src/primitives/xchacha20-poly1305/impl/xchacha20-poly1305.noble/xchacha20-poly1305.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [xchacha20-poly1305.select](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.select/xchacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [xchacha20-poly1305.select](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.select/xchacha20-poly1305.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [xchacha20-poly1305](./src/primitives/xchacha20-poly1305/xchacha20-poly1305.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead](./src/streaming/streaming-aead/streaming-aead.md) — <!-- begin:auto-docs --> _(no submodules)_ - [streaming-aead](./src/streaming/streaming-aead/streaming-aead.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead-aes-gcm](./src/streaming/streaming-aead-aes-gcm/streaming-aead-aes-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_ - [streaming-aead-aes-gcm](./src/streaming/streaming-aead-aes-gcm/streaming-aead-aes-gcm.md) — <!-- begin:auto-docs --> _(no submodules)_- [streaming-aead-xchacha20](./src/streaming/streaming-aead-xchacha20/streaming-aead-xchacha20.md) — <!-- begin:auto-docs --> _(no submodules)_ - [streaming-aead-xchacha20](./src/streaming/streaming-aead-xchacha20/streaming-aead-xchacha20.md) — <!-- begin:auto-docs --> _(no submodules)_
|
|
## Primitives
|
|
|
|
- `aes-256-gcm` — NIST SP 800-38D, 12-byte nonce, 16-byte tag (appended).
|
|
- `chacha20-poly1305` — RFC 8439, 12-byte nonce, 16-byte tag (appended).
|
|
- `xchacha20-poly1305` — IETF draft-irtf-cfrg-xchacha, 24-byte nonce, 16-byte tag.
|
|
|
|
## Subpath exports
|
|
|
|
- `@suaveplan/crypto-cipher/aes-256-gcm`
|
|
- `@suaveplan/crypto-cipher/chacha20-poly1305`
|
|
- `@suaveplan/crypto-cipher/xchacha20-poly1305`
|
|
|
|
Implementation flavour (`'noble'` vs `'native'`) is selected at build time via
|
|
`crypto.config.ts`. All Phase 0 impls route to `@noble/ciphers`.
|
|
|