22 lines
1.5 KiB
Markdown
22 lines
1.5 KiB
Markdown
# Capability Spec Delta: crypto-cipher (spec-conformance)
|
|
|
|
**Package**: `@suaveplan/crypto-cipher`
|
|
**Status**: PROPOSED
|
|
|
|
This delta annotates each existing requirement in `openspec/specs/crypto-cipher/spec.md` with a `**Verified by:**` line. No requirement semantics change.
|
|
|
|
## MODIFIED Requirements
|
|
|
|
| Requirement | Verified by |
|
|
|---|---|
|
|
| Universal AEAD primitive surface | `tests/spec-conformance.test.ts` AND `src/primitives/{aes-256-gcm,chacha20-poly1305,xchacha20-poly1305}/*.test.ts` |
|
|
| Per-primitive replaceability | `tests/spec-conformance.test.ts` (impl files + banner) AND per-primitive `throws PrimitiveNotImplemented` |
|
|
| Vendored noble source (Phase 0.5) | `tests/spec-conformance.test.ts::"is a Phase-0.5 forward gate; current state is pre-0.5 (noble dep + no vendored/)"` |
|
|
| Dangerous-tier CI gate | `tests/spec-conformance.test.ts::"every native is a stub today, so no AEAD has been flipped without an audit"` |
|
|
| Constant-time block-cipher and MAC implementation | `tests/spec-conformance.test.ts` (every native still a `PrimitiveNotImplemented` stub) |
|
|
| Nonce handling is the caller's responsibility | `tests/spec-conformance.test.ts::"no primitive source file consumes a CSPRNG (no Math.random / crypto.getRandomValues / randomBytes)"` AND per-primitive `rejects wrong nonce length` |
|
|
|
|
## Newly added tests in this change
|
|
|
|
- `tests/spec-conformance.test.ts` — pins layout, GENERATED banner, Phase-0.5 consistency, dangerous-tier runtime reflection, native-stub state, and the no-internal-CSPRNG invariant.
|