open-standards/scripts
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 4908d17c38
All checks were successful
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 7s
standards workspaces build + test / macOS energy backends (pull_request) Has been skipped
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 2m22s
sec: replace two allow-list reasons with what the call sites actually say
The advisory gate's allow list is only worth what its reasons are worth, and
two of mine were generalisations I had checked in one place and then written as
if they held everywhere. Both happen to be correct; neither was verified where
it mattered. Re-checked by call site:

`rsa` RUSTSEC-2023-0071 (Marvin) — no fixed release exists, so this entry
cannot be bumped away and the reason carries the whole weight. I had written
"no private-key decryption here" after verifying it for openpay, whose
dependency turned out to be unused and was removed. The two copies that remain
were not checked at the time:

  - sandbox-rs: `sandbox-tee/src/amd_kds.rs` is the only direct user of `rsa`
    in the tree. It verifies AMD's KDS chain (ARK -> ASK -> VCEK, RSASSA-PSS /
    SHA-384) with `RsaPublicKey` + `pss::VerifyingKey` + `Verifier`. Public-key
    verification, no decryption, and `RsaPrivateKey` appears only inside
    `#[cfg(test)] mod tests`, minting throwaway keys for a synthetic chain.
    Marvin needs private-key PKCS#1 v1.5 decryption, which is absent.
  - wai-rs: reaches `rsa` only through `c2pa`, an optional dependency behind
    the `c2pa_emit` feature and off by default, so a default build never
    compiles it.

`crypto-bigint` RUSTSEC-2026-0387 — I had recorded this as debt "on paths that
sign and derive keys", which overstated it. `elliptic-curve` is the only
dependent in all five lockfiles, and none of our own signing goes through it:
WAI, sandbox and jouleclaw sign with Ed25519 (`ed25519_dalek` /
curve25519-dalek, which does not use crypto-bigint). In wai-rs the
elliptic-curve path is again under optional `c2pa`, where production callers
supply their own signer and the in-tree `EphemeralSigner` holds a per-call key
that reaches `ValidationState::Valid` and never `Trusted`. A timing attack of
this class recovers a key by observing many operations under the same secret,
so a per-call key bounds it. The 0.5 pin is still real debt — reaching >=0.7.6
means moving the p256/elliptic-curve stack — but it is not sitting under a
long-lived key of ours.

No behaviour change: 47 lockfiles, the same 15 allowances, self-test green on
all six cases. This is the reasoning catching up with the gate.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-10-26 08:32:31 -04:00
..
check-advisories-selftest.sh sec: answer the gate's first catch — two constant-time advisories, and pin an allowance to the version it excuses 2026-10-24 20:06:05 -04:00
check-advisories.py sec: replace two allow-list reasons with what the call sites actually say 2026-10-26 08:32:31 -04:00
check-comparative-prose.sh wai: restate the ranking phrases the retrofit left in research and extensions 2026-10-01 08:38:05 -04:00
check-fabric-errors.py jouleclaw-omni: metal compiles — 45 -> 0, write the 21 missing kernels 2026-10-20 04:33:42 -04:00
check-lockfiles-selftest.sh scripts: no pipe into grep -q under pipefail 2026-10-15 01:52:03 -04:00
check-lockfiles.sh joule-code: vendor wtransport 0.7.2 as published, patched in 2026-10-20 04:54:03 -04:00
check-metal-shaders.py check-metal-shaders: stop being coupled to raw-string style, and refuse to check almost nothing 2026-10-20 08:52:06 -04:00
check-no-vanity-metrics.sh docs + no-vanity-metrics: reword two counts, fix scanner false positive 2026-06-13 22:14:13 -04:00
check-orphan-sources.py jouleclaw-omni: declare 23 modules that were compiled by nothing 2026-10-18 07:19:24 -04:00
check-public-names.sh check-public-names: read file arguments from the caller's directory; name a file it cannot read 2026-10-21 15:19:18 -04:00
check-spec-refs-selftest.sh ci: a citation to a section that does not exist is now a failure 2026-10-13 03:07:23 -04:00
check-spec-refs.py ci: a citation to a section that does not exist is now a failure 2026-10-13 03:07:23 -04:00
check-tests-in-ci-selftest.sh scripts: no pipe into grep -q under pipefail 2026-10-15 01:52:03 -04:00
check-tests-in-ci.py ci: every wai-rs test file is run by a job or listed, and none can run empty 2026-10-13 01:20:48 -04:00
check-wai-section-refs.py check-wai-section-refs: read wai/SECURITY.md too 2026-10-09 17:15:06 -04:00
check-workflow-concurrency-selftest.sh ci: one job for the repository's script checks 2026-10-14 12:05:46 -04:00
check-workflow-concurrency.sh ci: guard the concurrency groups, and stop the dev Mac serving 13 of 21 contexts 2026-10-05 12:18:21 -04:00
install-hooks.sh ci: no-vanity-metrics scanner + pre-commit hook + CHARTER policy 2026-06-02 10:39:43 -04:00
pr-touches-paths-selftest.sh pr-touches-paths: a comment inside a path list no longer ends it 2026-10-14 04:21:43 -04:00
pr-touches-paths.py pr-touches-paths: a comment inside a path list no longer ends it 2026-10-14 04:21:43 -04:00
standards-touched-selftest.sh scripts: no pipe into grep -q under pipefail 2026-10-15 01:52:03 -04:00
standards-touched.py ci: the standards build builds the workspaces a change touches 2026-10-14 03:40:08 -04:00
test-public-text-checks.sh check-public-names: read file arguments from the caller's directory; name a file it cannot read 2026-10-21 15:19:18 -04:00
wai-quantum-webgpu-member.sh wai-quantum fabric: run meters, metered calibration, place_for, and the Fabric wrapper 2026-10-12 05:08:11 -04:00