From cb9ed5eb9101f9254ef43c58b9fd441ded760912 Mon Sep 17 00:00:00 2001
From: zemo-g
Date: Wed, 8 Jul 2026 21:06:05 -0400
Subject: [PATCH] test(tls): pin the TLS 1.3 stack to published RFC vectors
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Five inline suite tests (182 -> 187): RFC 8448 §3 full offline handshake,
ECDSA-P256 verify per RFC 6979 §A.2.5 + 4-way invalid-signature rejection,
the CertificateVerify path, and SAN hostname validation on a real leaf.
Distilled from the manual tests in tools/tls/, each proven standalone first.
Adding them exposed a suite-harness bug: run_test kept every compile's
garbage live, so by test ~183 the default 1GB arena was full and the GC
crawled (20+ min hang on a test that runs in seconds standalone). Each
test now compiles inside an arena_mark/arena_reset window; suite memory
stays flat and the full 187-test run drops to ~80 s at the default arena.
Seed rebuilt via the in-process toolchain, fixed point verified
(stage2 == stage3), rail_safe in lockstep (byte-identical, 19/19 gate).
See CHANGELOG.md (Unreleased).
Co-Authored-By: Claude Fable 5
Claude-Session: https://claude.ai/code/session_01Pb4TJEdqhSKkRdLsDYD2JF
---
CHANGELOG.md | 21 +++++++++++++++++++++
README.md | 6 +++---
docs/STATUS.md | 6 +++---
rail_native | Bin 908360 -> 908360 bytes
rail_safe | Bin 908360 -> 908360 bytes
rail_safe.sha256 | 2 +-
tools/compile.rail | 19 ++++++++++++++++---
7 files changed, 44 insertions(+), 10 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3742550..6ad70d3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,27 @@
All notable changes to Rail are documented here.
+## Unreleased
+
+### Tests
+- **Ed25519 pinned to RFC 8032 published vectors** (#48): sign + verify
+ + tamper-rejection known-answer tests; suite 178 → 182.
+- **TLS stack pinned to published vectors** (#49): RFC 8448 §3 full
+ offline handshake (key schedule + transcript + server/client Finished),
+ ECDSA-P256 verify per RFC 6979 §A.2.5 plus a 4-way invalid-signature
+ rejection test, the CertificateVerify path (ASN.1 parse → SPKI extract
+ → DER sig parse → ECDSA), and SAN hostname validation against a real
+ captured leaf (accept exact + case-fold, reject other host and parent
+ domain); suite 182 → 187. The handshake, cert-verify, and hostname
+ paths — the code that decides who to trust — were previously covered
+ only by manual tests in `tools/tls/`.
+- **Suite harness: per-test `arena_mark`/`arena_reset`** (#49). Adding
+ the TLS tests exposed that `run_test` kept every compile's garbage
+ live across the whole run: by test ~183 the default 1GB arena was
+ full and the GC crawled — a test that compiles in seconds standalone
+ spun for 20+ minutes in-suite. Each test now compiles inside a
+ mark/reset window, so suite memory stays flat at any test count.
+
## v5.3.0 — 2026-07-08 — Independence + 3× faster self-compile
Consolidation release: 19 PRs since v5.2.0. Two headlines — a
diff --git a/README.md b/README.md
index a4655d0..dacce56 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@
-
+
@@ -34,7 +34,7 @@ Rail compiles itself. The compiler — ~9,200 lines of Rail — produces a ~0.9
```
./rail_native self && cp /tmp/rail_self ./rail_native # cycle 1
./rail_native self && cmp rail_native /tmp/rail_self # cycle 2 — byte-identical
-./rail_native test # 182/182
+./rail_native test # 187/187
```
## Quick start
@@ -50,7 +50,7 @@ Apple Silicon (ARM64 macOS) is the primary target; Linux ARM64, Linux x86_64, We
```bash
./rail_native # compile to /tmp/rail_out
./rail_native run # compile + execute
-./rail_native test # run the 182-test suite
+./rail_native test # run the 187-test suite
./rail_native self # self-compile, fixed point at gen2
./rail_native x86 # cross-compile to Linux x86_64
./rail_native linux # cross-compile to Linux ARM64
diff --git a/docs/STATUS.md b/docs/STATUS.md
index c1bc915..0f7fbf8 100644
--- a/docs/STATUS.md
+++ b/docs/STATUS.md
@@ -1,6 +1,6 @@
# Rail - verified status (v5.3.0)
-> Generated by `tools/deploy/gen_status.rail` on 2026-07-08 19:37 UTC.
+> Generated by `tools/deploy/gen_status.rail` on 2026-07-09 01:06 UTC.
> Every number is recomputed from the source tree on each run, so this file
> cannot drift. Where a claim needs proof, the **command** is given - run it
> yourself. These are reproducible provenance facts, not a proof of correctness.
@@ -8,9 +8,9 @@
| Fact | Value | Verify it yourself |
|---|---|---|
| Release | v5.3.0 | `git describe --tags` |
-| Compiler | 9232 lines of Rail | `wc -l tools/compile.rail` |
+| Compiler | 9245 lines of Rail | `wc -l tools/compile.rail` |
| Seed binary | 908360 bytes | `wc -c rail_native` |
-| Seed sha256 | `44e28d4780658866d82201aa6cbc6efcc94704e191ac70a9587e19f240eaf35c` | `shasum -a 256 rail_native` |
+| Seed sha256 | `ba9344da55733580a04c9593e9062fded821c86829fa326219de5a39297889f2` | `shasum -a 256 rail_native` |
| Stdlib | 102 modules | `ls stdlib/*.rail \| wc -l` |
| Non-Rail surface | 31 in-tree files | `SHIMS.md` |
| Tests | runner self-reports N/N | `./rail_native test` |
diff --git a/rail_native b/rail_native
index 5132414d66491e797f63f53a102b8e08060e563a..0401d43cbbba73cb4f17ecac8af73b2757086d4b 100755
GIT binary patch
delta 160229
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