Files
skills/docs/security-stack/crypto/crypto-curve/README.md
2026-05-29 08:20:56 +01:00

104 lines
33 KiB
Markdown

# @suaveplan/crypto-curve - Elliptic-curve primitives with per-primitive selector layout: secp256k1, ed25519, x25519, p256, p384, p521. Noble + native impls selected at build time via crypto.config.ts. Zero runtime mocks; thin wrappers over @noble/curves.
## Summary
Low-level elliptic-curve building blocks for the `@suaveplan/crypto` stack. Exposes four curves — secp256k1, Ed25519, X25519, and NIST P-256 — each as a standalone subpath export so bundlers only ship the primitives actually used. Every curve provides key generation, signing/verification (or key agreement), and raw byte operations. Implementation flavour (`'noble'` vs `'native'`) is selected at build time via the repo-root `crypto.config.ts`; all Phase 0 implementations route to `@noble/curves`. Use this package when you need raw curve operations; for high-level AEAD, signing, or sealed-box use `@suaveplan/crypto` instead.
<!-- 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-curve-error](./src/errors/crypto-curve-error/crypto-curve-error.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [crypto-curve-error](./src/errors/crypto-curve-error/crypto-curve-error.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [ed25519](./src/primitives/ed25519/ed25519.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- ed25519.select — <!-- begin:auto-docs --> _(no submo…
- [ed25519.select](./src/primitives/ed25519/ed25519.select/ed25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [ed25519.select](./src/primitives/ed25519/ed25519.select/ed25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [ed25519.native](./src/primitives/ed25519/impl/ed25519.native/ed25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [ed25519.native](./src/primitives/ed25519/impl/ed25519.native/ed25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [ed25519.noble](./src/primitives/ed25519/impl/ed25519.noble/ed25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [ed25519.noble](./src/primitives/ed25519/impl/ed25519.noble/ed25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [ed25519](./src/primitives/ed25519/ed25519.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- ed25519.select — <!-- begin:auto-docs --> _(no submo…
- [p256](./src/primitives/p256/p256.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- p256.native — <!-- begin:auto-docs --> _(no submodul…
- [p256.native](./src/primitives/p256/impl/p256.native/p256.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p256.native](./src/primitives/p256/impl/p256.native/p256.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p256.noble](./src/primitives/p256/impl/p256.noble/p256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p256.noble](./src/primitives/p256/impl/p256.noble/p256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p256.select](./src/primitives/p256/p256.select/p256.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p256.select](./src/primitives/p256/p256.select/p256.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p256](./src/primitives/p256/p256.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- p256.native — <!-- begin:auto-docs --> _(no submodul…
- [p384](./src/primitives/p384/p384.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- p384.native — <!-- begin:auto-docs --> _(no submodul…
- [p384.native](./src/primitives/p384/impl/p384.native/p384.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p384.native](./src/primitives/p384/impl/p384.native/p384.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p384.noble](./src/primitives/p384/impl/p384.noble/p384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p384.noble](./src/primitives/p384/impl/p384.noble/p384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p384.select](./src/primitives/p384/p384.select/p384.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p384.select](./src/primitives/p384/p384.select/p384.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p384](./src/primitives/p384/p384.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- p384.native — <!-- begin:auto-docs --> _(no submodul…
- [p521](./src/primitives/p521/p521.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- p521.native — <!-- begin:auto-docs --> _(no submodul…
- [p521.native](./src/primitives/p521/impl/p521.native/p521.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p521.native](./src/primitives/p521/impl/p521.native/p521.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p521.noble](./src/primitives/p521/impl/p521.noble/p521.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p521.noble](./src/primitives/p521/impl/p521.noble/p521.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p521.select](./src/primitives/p521/p521.select/p521.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p521.select](./src/primitives/p521/p521.select/p521.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [p521](./src/primitives/p521/p521.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- p521.native — <!-- begin:auto-docs --> _(no submodul…
- [secp256k1](./src/primitives/secp256k1/secp256k1.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- secp256k1.native — <!-- begin:auto-docs --> _(no sub…
- [secp256k1.native](./src/primitives/secp256k1/impl/secp256k1.native/secp256k1.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [secp256k1.native](./src/primitives/secp256k1/impl/secp256k1.native/secp256k1.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [secp256k1.noble](./src/primitives/secp256k1/impl/secp256k1.noble/secp256k1.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [secp256k1.noble](./src/primitives/secp256k1/impl/secp256k1.noble/secp256k1.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [secp256k1.select](./src/primitives/secp256k1/secp256k1.select/secp256k1.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [secp256k1.select](./src/primitives/secp256k1/secp256k1.select/secp256k1.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [secp256k1](./src/primitives/secp256k1/secp256k1.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- secp256k1.native — <!-- begin:auto-docs --> _(no sub…
- [x25519](./src/primitives/x25519/x25519.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- x25519.native — <!-- begin:auto-docs --> _(no submod…
- [x25519.native](./src/primitives/x25519/impl/x25519.native/x25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [x25519.native](./src/primitives/x25519/impl/x25519.native/x25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [x25519.noble](./src/primitives/x25519/impl/x25519.noble/x25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [x25519.noble](./src/primitives/x25519/impl/x25519.noble/x25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [x25519.select](./src/primitives/x25519/x25519.select/x25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [x25519.select](./src/primitives/x25519/x25519.select/x25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [x25519](./src/primitives/x25519/x25519.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->- x25519.native — <!-- begin:auto-docs --> _(no submod…
<!-- end:auto-docs --> - [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_- [crypto-curve-error](./src/errors/crypto-curve-error/crypto-curve-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [crypto-curve-error](./src/errors/crypto-curve-error/crypto-curve-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519](./src/primitives/ed25519/ed25519.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519.select](./src/primitives/ed25519/ed25519.select/ed25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519.select](./src/primitives/ed25519/ed25519.select/ed25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519.native](./src/primitives/ed25519/impl/ed25519.native/ed25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519.native](./src/primitives/ed25519/impl/ed25519.native/ed25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519.noble](./src/primitives/ed25519/impl/ed25519.noble/ed25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519.noble](./src/primitives/ed25519/impl/ed25519.noble/ed25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519](./src/primitives/ed25519/ed25519.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256](./src/primitives/p256/p256.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256.native](./src/primitives/p256/impl/p256.native/p256.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256.native](./src/primitives/p256/impl/p256.native/p256.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256.noble](./src/primitives/p256/impl/p256.noble/p256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256.noble](./src/primitives/p256/impl/p256.noble/p256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256.select](./src/primitives/p256/p256.select/p256.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256.select](./src/primitives/p256/p256.select/p256.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256](./src/primitives/p256/p256.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384](./src/primitives/p384/p384.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384.native](./src/primitives/p384/impl/p384.native/p384.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384.native](./src/primitives/p384/impl/p384.native/p384.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384.noble](./src/primitives/p384/impl/p384.noble/p384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384.noble](./src/primitives/p384/impl/p384.noble/p384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384.select](./src/primitives/p384/p384.select/p384.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384.select](./src/primitives/p384/p384.select/p384.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384](./src/primitives/p384/p384.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521](./src/primitives/p521/p521.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521.native](./src/primitives/p521/impl/p521.native/p521.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521.native](./src/primitives/p521/impl/p521.native/p521.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521.noble](./src/primitives/p521/impl/p521.noble/p521.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521.noble](./src/primitives/p521/impl/p521.noble/p521.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521.select](./src/primitives/p521/p521.select/p521.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521.select](./src/primitives/p521/p521.select/p521.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521](./src/primitives/p521/p521.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1](./src/primitives/secp256k1/secp256k1.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1.native](./src/primitives/secp256k1/impl/secp256k1.native/secp256k1.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1.native](./src/primitives/secp256k1/impl/secp256k1.native/secp256k1.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1.noble](./src/primitives/secp256k1/impl/secp256k1.noble/secp256k1.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1.noble](./src/primitives/secp256k1/impl/secp256k1.noble/secp256k1.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1.select](./src/primitives/secp256k1/secp256k1.select/secp256k1.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1.select](./src/primitives/secp256k1/secp256k1.select/secp256k1.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1](./src/primitives/secp256k1/secp256k1.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519](./src/primitives/x25519/x25519.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519.native](./src/primitives/x25519/impl/x25519.native/x25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519.native](./src/primitives/x25519/impl/x25519.native/x25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519.noble](./src/primitives/x25519/impl/x25519.noble/x25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519.noble](./src/primitives/x25519/impl/x25519.noble/x25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519.select](./src/primitives/x25519/x25519.select/x25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519.select](./src/primitives/x25519/x25519.select/x25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519](./src/primitives/x25519/x25519.md) — <!-- begin:auto-docs --> _(no submodules)_- [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_- [crypto-curve-error](./src/errors/crypto-curve-error/crypto-curve-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [crypto-curve-error](./src/errors/crypto-curve-error/crypto-curve-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519](./src/primitives/ed25519/ed25519.md) — <!-- begin:auto-docs --> _(no submodules)_- ed25519.select — <!-- begin:…
- [ed25519.select](./src/primitives/ed25519/ed25519.select/ed25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519.select](./src/primitives/ed25519/ed25519.select/ed25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519.native](./src/primitives/ed25519/impl/ed25519.native/ed25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519.native](./src/primitives/ed25519/impl/ed25519.native/ed25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519.noble](./src/primitives/ed25519/impl/ed25519.noble/ed25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519.noble](./src/primitives/ed25519/impl/ed25519.noble/ed25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519](./src/primitives/ed25519/ed25519.md) — <!-- begin:auto-docs --> _(no submodules)_- ed25519.select — <!-- begin:…
- [p256](./src/primitives/p256/p256.md) — <!-- begin:auto-docs --> _(no submodules)_- p256.native — <!-- begin:aut…
- [p256.native](./src/primitives/p256/impl/p256.native/p256.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256.native](./src/primitives/p256/impl/p256.native/p256.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256.noble](./src/primitives/p256/impl/p256.noble/p256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256.noble](./src/primitives/p256/impl/p256.noble/p256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256.select](./src/primitives/p256/p256.select/p256.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256.select](./src/primitives/p256/p256.select/p256.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256](./src/primitives/p256/p256.md) — <!-- begin:auto-docs --> _(no submodules)_- p256.native — <!-- begin:aut…
- [p384](./src/primitives/p384/p384.md) — <!-- begin:auto-docs --> _(no submodules)_- p384.native — <!-- begin:aut…
- [p384.native](./src/primitives/p384/impl/p384.native/p384.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384.native](./src/primitives/p384/impl/p384.native/p384.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384.noble](./src/primitives/p384/impl/p384.noble/p384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384.noble](./src/primitives/p384/impl/p384.noble/p384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384.select](./src/primitives/p384/p384.select/p384.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384.select](./src/primitives/p384/p384.select/p384.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384](./src/primitives/p384/p384.md) — <!-- begin:auto-docs --> _(no submodules)_- p384.native — <!-- begin:aut…
- [p521](./src/primitives/p521/p521.md) — <!-- begin:auto-docs --> _(no submodules)_- p521.native — <!-- begin:aut…
- [p521.native](./src/primitives/p521/impl/p521.native/p521.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521.native](./src/primitives/p521/impl/p521.native/p521.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521.noble](./src/primitives/p521/impl/p521.noble/p521.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521.noble](./src/primitives/p521/impl/p521.noble/p521.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521.select](./src/primitives/p521/p521.select/p521.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521.select](./src/primitives/p521/p521.select/p521.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521](./src/primitives/p521/p521.md) — <!-- begin:auto-docs --> _(no submodules)_- p521.native — <!-- begin:aut…
- [secp256k1](./src/primitives/secp256k1/secp256k1.md) — <!-- begin:auto-docs --> _(no submodules)_- secp256k1.native — <!-- begi…
- [secp256k1.native](./src/primitives/secp256k1/impl/secp256k1.native/secp256k1.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1.native](./src/primitives/secp256k1/impl/secp256k1.native/secp256k1.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1.noble](./src/primitives/secp256k1/impl/secp256k1.noble/secp256k1.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1.noble](./src/primitives/secp256k1/impl/secp256k1.noble/secp256k1.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1.select](./src/primitives/secp256k1/secp256k1.select/secp256k1.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1.select](./src/primitives/secp256k1/secp256k1.select/secp256k1.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1](./src/primitives/secp256k1/secp256k1.md) — <!-- begin:auto-docs --> _(no submodules)_- secp256k1.native — <!-- begi…
- [x25519](./src/primitives/x25519/x25519.md) — <!-- begin:auto-docs --> _(no submodules)_- x25519.native — <!-- begin:a…
- [x25519.native](./src/primitives/x25519/impl/x25519.native/x25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519.native](./src/primitives/x25519/impl/x25519.native/x25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519.noble](./src/primitives/x25519/impl/x25519.noble/x25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519.noble](./src/primitives/x25519/impl/x25519.noble/x25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519.select](./src/primitives/x25519/x25519.select/x25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519.select](./src/primitives/x25519/x25519.select/x25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519](./src/primitives/x25519/x25519.md) — <!-- begin:auto-docs --> _(no submodules)_- x25519.native — <!-- begin:a…
- [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_- [crypto-curve-error](./src/errors/crypto-curve-error/crypto-curve-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [crypto-curve-error](./src/errors/crypto-curve-error/crypto-curve-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519](./src/primitives/ed25519/ed25519.md) — <!-- begin:auto-docs --> _(no submodules)_- ed25519.select — <!-- begin:auto-docs --> _(no subm…
- [ed25519.select](./src/primitives/ed25519/ed25519.select/ed25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519.select](./src/primitives/ed25519/ed25519.select/ed25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519.native](./src/primitives/ed25519/impl/ed25519.native/ed25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519.native](./src/primitives/ed25519/impl/ed25519.native/ed25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519.noble](./src/primitives/ed25519/impl/ed25519.noble/ed25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519.noble](./src/primitives/ed25519/impl/ed25519.noble/ed25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519](./src/primitives/ed25519/ed25519.md) — <!-- begin:auto-docs --> _(no submodules)_- ed25519.select — <!-- begin:auto-docs --> _(no subm…
- [p256](./src/primitives/p256/p256.md) — <!-- begin:auto-docs --> _(no submodules)_- p256.native — <!-- begin:auto-docs --> _(no submodu…
- [p256.native](./src/primitives/p256/impl/p256.native/p256.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256.native](./src/primitives/p256/impl/p256.native/p256.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256.noble](./src/primitives/p256/impl/p256.noble/p256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256.noble](./src/primitives/p256/impl/p256.noble/p256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256.select](./src/primitives/p256/p256.select/p256.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256.select](./src/primitives/p256/p256.select/p256.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256](./src/primitives/p256/p256.md) — <!-- begin:auto-docs --> _(no submodules)_- p256.native — <!-- begin:auto-docs --> _(no submodu…
- [p384](./src/primitives/p384/p384.md) — <!-- begin:auto-docs --> _(no submodules)_- p384.native — <!-- begin:auto-docs --> _(no submodu…
- [p384.native](./src/primitives/p384/impl/p384.native/p384.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384.native](./src/primitives/p384/impl/p384.native/p384.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384.noble](./src/primitives/p384/impl/p384.noble/p384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384.noble](./src/primitives/p384/impl/p384.noble/p384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384.select](./src/primitives/p384/p384.select/p384.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384.select](./src/primitives/p384/p384.select/p384.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384](./src/primitives/p384/p384.md) — <!-- begin:auto-docs --> _(no submodules)_- p384.native — <!-- begin:auto-docs --> _(no submodu…
- [p521](./src/primitives/p521/p521.md) — <!-- begin:auto-docs --> _(no submodules)_- p521.native — <!-- begin:auto-docs --> _(no submodu…
- [p521.native](./src/primitives/p521/impl/p521.native/p521.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521.native](./src/primitives/p521/impl/p521.native/p521.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521.noble](./src/primitives/p521/impl/p521.noble/p521.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521.noble](./src/primitives/p521/impl/p521.noble/p521.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521.select](./src/primitives/p521/p521.select/p521.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521.select](./src/primitives/p521/p521.select/p521.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521](./src/primitives/p521/p521.md) — <!-- begin:auto-docs --> _(no submodules)_- p521.native — <!-- begin:auto-docs --> _(no submodu…
- [secp256k1](./src/primitives/secp256k1/secp256k1.md) — <!-- begin:auto-docs --> _(no submodules)_- secp256k1.native — <!-- begin:auto-docs --> _(no su…
- [secp256k1.native](./src/primitives/secp256k1/impl/secp256k1.native/secp256k1.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1.native](./src/primitives/secp256k1/impl/secp256k1.native/secp256k1.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1.noble](./src/primitives/secp256k1/impl/secp256k1.noble/secp256k1.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1.noble](./src/primitives/secp256k1/impl/secp256k1.noble/secp256k1.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1.select](./src/primitives/secp256k1/secp256k1.select/secp256k1.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1.select](./src/primitives/secp256k1/secp256k1.select/secp256k1.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1](./src/primitives/secp256k1/secp256k1.md) — <!-- begin:auto-docs --> _(no submodules)_- secp256k1.native — <!-- begin:auto-docs --> _(no su…
- [x25519](./src/primitives/x25519/x25519.md) — <!-- begin:auto-docs --> _(no submodules)_- x25519.native — <!-- begin:auto-docs --> _(no submo…
- [x25519.native](./src/primitives/x25519/impl/x25519.native/x25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519.native](./src/primitives/x25519/impl/x25519.native/x25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519.noble](./src/primitives/x25519/impl/x25519.noble/x25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519.noble](./src/primitives/x25519/impl/x25519.noble/x25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519.select](./src/primitives/x25519/x25519.select/x25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519.select](./src/primitives/x25519/x25519.select/x25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519](./src/primitives/x25519/x25519.md) — <!-- begin:auto-docs --> _(no submodules)_- x25519.native — <!-- begin:auto-docs --> _(no submo…
- [codes](./src/errors/codes/codes.md) — <!-- begin:auto-docs --> _(no submodules)_- [crypto-curve-error](./src/errors/crypto-curve-error/crypto-curve-error.md) — <!-- begin:auto-docs --> _(no submodules)_ - [crypto-curve-error](./src/errors/crypto-curve-error/crypto-curve-error.md) — <!-- begin:auto-docs --> _(no submodules)_- [ed25519](./src/primitives/ed25519/ed25519.md) — <!-- begin:auto-docs --> _(no submodules)_ - [ed25519.select](./src/primitives/ed25519/ed25519.select/ed25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [ed25519.select](./src/primitives/ed25519/ed25519.select/ed25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [ed25519.native](./src/primitives/ed25519/impl/ed25519.native/ed25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [ed25519.native](./src/primitives/ed25519/impl/ed25519.native/ed25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [ed25519.noble](./src/primitives/ed25519/impl/ed25519.noble/ed25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [ed25519.noble](./src/primitives/ed25519/impl/ed25519.noble/ed25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [ed25519](./src/primitives/ed25519/ed25519.md) — <!-- begin:auto-docs --> _(no submodules)_- [p256](./src/primitives/p256/p256.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p256.native](./src/primitives/p256/impl/p256.native/p256.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p256.native](./src/primitives/p256/impl/p256.native/p256.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p256.noble](./src/primitives/p256/impl/p256.noble/p256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p256.noble](./src/primitives/p256/impl/p256.noble/p256.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p256.select](./src/primitives/p256/p256.select/p256.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p256.select](./src/primitives/p256/p256.select/p256.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p256](./src/primitives/p256/p256.md) — <!-- begin:auto-docs --> _(no submodules)_- [p384](./src/primitives/p384/p384.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p384.native](./src/primitives/p384/impl/p384.native/p384.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p384.native](./src/primitives/p384/impl/p384.native/p384.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p384.noble](./src/primitives/p384/impl/p384.noble/p384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p384.noble](./src/primitives/p384/impl/p384.noble/p384.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p384.select](./src/primitives/p384/p384.select/p384.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p384.select](./src/primitives/p384/p384.select/p384.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p384](./src/primitives/p384/p384.md) — <!-- begin:auto-docs --> _(no submodules)_- [p521](./src/primitives/p521/p521.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p521.native](./src/primitives/p521/impl/p521.native/p521.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p521.native](./src/primitives/p521/impl/p521.native/p521.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p521.noble](./src/primitives/p521/impl/p521.noble/p521.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p521.noble](./src/primitives/p521/impl/p521.noble/p521.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p521.select](./src/primitives/p521/p521.select/p521.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p521.select](./src/primitives/p521/p521.select/p521.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [p521](./src/primitives/p521/p521.md) — <!-- begin:auto-docs --> _(no submodules)_- [secp256k1](./src/primitives/secp256k1/secp256k1.md) — <!-- begin:auto-docs --> _(no submodules)_ - [secp256k1.native](./src/primitives/secp256k1/impl/secp256k1.native/secp256k1.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [secp256k1.native](./src/primitives/secp256k1/impl/secp256k1.native/secp256k1.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [secp256k1.noble](./src/primitives/secp256k1/impl/secp256k1.noble/secp256k1.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [secp256k1.noble](./src/primitives/secp256k1/impl/secp256k1.noble/secp256k1.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [secp256k1.select](./src/primitives/secp256k1/secp256k1.select/secp256k1.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [secp256k1.select](./src/primitives/secp256k1/secp256k1.select/secp256k1.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [secp256k1](./src/primitives/secp256k1/secp256k1.md) — <!-- begin:auto-docs --> _(no submodules)_- [x25519](./src/primitives/x25519/x25519.md) — <!-- begin:auto-docs --> _(no submodules)_ - [x25519.native](./src/primitives/x25519/impl/x25519.native/x25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [x25519.native](./src/primitives/x25519/impl/x25519.native/x25519.native.md) — <!-- begin:auto-docs --> _(no submodules)_ - [x25519.noble](./src/primitives/x25519/impl/x25519.noble/x25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [x25519.noble](./src/primitives/x25519/impl/x25519.noble/x25519.noble.md) — <!-- begin:auto-docs --> _(no submodules)_ - [x25519.select](./src/primitives/x25519/x25519.select/x25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [x25519.select](./src/primitives/x25519/x25519.select/x25519.select.md) — <!-- begin:auto-docs --> _(no submodules)_ - [x25519](./src/primitives/x25519/x25519.md) — <!-- begin:auto-docs --> _(no submodules)_
## Primitives
- `secp256k1` — ECDSA + ECDH on secp256k1 (Bitcoin/Ethereum curve).
- `ed25519` — EdDSA on Edwards25519 (RFC 8032).
- `x25519` — ECDH on Curve25519 / Montgomery form (RFC 7748).
- `p256` — ECDSA + ECDH on NIST P-256 (FIPS 186-4).
## Subpath exports
- `@suaveplan/crypto-curve/secp256k1`
- `@suaveplan/crypto-curve/ed25519`
- `@suaveplan/crypto-curve/x25519`
- `@suaveplan/crypto-curve/p256`
Implementation flavour (`'noble'` vs `'native'`) is selected at build time via
the repo-root `crypto.config.ts`. All Phase 0 impls route to `@noble/curves`.