104 lines
33 KiB
Markdown
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`.
|
|
|