Initial Commit
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
## MODIFIED Requirements
|
||||
|
||||
### Requirement: Primitive source
|
||||
|
||||
`@suaveplan/crypto` SHALL source every curve and cipher primitive from `@suaveplan/crypto-curve` and `@suaveplan/crypto-cipher` respectively, not from `@noble/*` directly. Every hash primitive is sourced from `@suaveplan/crypto-hash`. Every byte / encoding / random utility is sourced from `@suaveplan/crypto-utils`.
|
||||
|
||||
#### Scenario: No @noble/* imports in @suaveplan/crypto source
|
||||
|
||||
- **WHEN** `packages/universal/crypto/src/**/*.ts` is grepped
|
||||
- **THEN** no occurrence of the string `@noble/` remains
|
||||
|
||||
#### Scenario: No @noble/* in @suaveplan/crypto direct dependencies
|
||||
|
||||
- **WHEN** `packages/universal/crypto/package.json` is inspected
|
||||
- **THEN** none of `@noble/hashes`, `@noble/curves`, `@noble/ciphers` appear under `dependencies` or `peerDependencies`
|
||||
- **AND** `@suaveplan/crypto-hash`, `@suaveplan/crypto-curve`, `@suaveplan/crypto-cipher`, `@suaveplan/crypto-utils` appear under `dependencies` with `workspace:^`
|
||||
|
||||
### Requirement: Public API surface unchanged
|
||||
|
||||
`@suaveplan/crypto` SHALL preserve its existing public API across the primitive-rewiring. All subpath exports declared in `package.json` at the start of this change remain available with identical signatures.
|
||||
|
||||
#### Scenario: Subpath exports preserved
|
||||
|
||||
- **WHEN** a consumer imports `@suaveplan/crypto/aead`, `@suaveplan/crypto/sign`, `@suaveplan/crypto/agree`, `@suaveplan/crypto/sealed-box`, `@suaveplan/crypto/auth-box`, `@suaveplan/crypto/engines`, `@suaveplan/crypto/primitives/random-bytes`, `@suaveplan/crypto/primitives/constant-time-equal`, `@suaveplan/crypto/primitives/zeroize`, or `@suaveplan/crypto/errors`
|
||||
- **THEN** the exported functions have identical signatures and behaviour as before this change
|
||||
- **AND** all existing `@suaveplan/crypto` tests pass unchanged
|
||||
Reference in New Issue
Block a user