first commit

This commit is contained in:
2026-05-29 08:20:56 +01:00
commit 949299f58d
6368 changed files with 527176 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
# __fixtures__/rsa-2048-key
## Purpose
Real 2048-bit RSA keypair generated once at module-load time and exposed
as canonical `RsaPublicKey` / `RsaPrivateKey` shapes for Stage 2+ tests
(sign / verify / encrypt / decrypt). The 16-bit synthetic
`TINY_PRIVATE_KEY` fixture in `test-keys.ts` cannot host a SHA-256 EM
(32 bytes is wider than its 2-byte modulus), so signature tests need a
real-sized key.
## Features
- Real 2048-bit keypair via `node:crypto.generateKeyPairSync`
- Decoded into canonical bigint form via `finalisePrivateKey` /
`finalisePublicKey`
- Stable within a single test run (deterministic across all tests in the
same process); not deterministic across processes
- Re-run cost amortised across the entire Stage 2+ suite (≈ 50 ms once)
## Usage
```ts
import {
RSA_2048_PRIVATE_KEY,
RSA_2048_PUBLIC_KEY,
} from "../__fixtures__/rsa-2048-key.js";
```
## API Reference
### `RSA_2048_PUBLIC_KEY: RsaPublicKey`
### `RSA_2048_PRIVATE_KEY: RsaPrivateKey`
## Implementation Notes
- Tests that need byte-exact reference vectors must use one of the RFC
8017 Appendix C / Wycheproof / CAVP fixture files (added incrementally
).
- The fixture is not committed bytes-on-disk; regeneration on every
test process amortises down to noise once the rest of the suite runs.