fix(consensus): add FullW/LowBitsW to the generic forbidden-wire-field sweep (was NonceCert-specific); docs: tag v1.1.4, EC-machine-check note

This commit is contained in:
zooqueen
2026-06-21 20:40:00 -07:00
parent f2d84f10a2
commit 39ee49604c
2 changed files with 9 additions and 3 deletions
+3 -3
View File
@@ -2,8 +2,8 @@
**Repository (current)**: github.com/luxfi/pulsar
**Repository (target)**: github.com/luxfi/pulsar
**Latest Tag**: v0.1.0
**Status**: Research / Reference (not production hardened, not FIPS validated)
**Latest Tag**: v1.1.4
**Status**: Research / Reference (not production hardened, not FIPS validated). EasyCrypt + Lean machine-check on host (gate `ec-machine-check.sh`, 14/14); no-leak BCC threshold path interop-verified under CIRCL + pq-crystals.
## Rename in progress: Pulsar-M → Pulsar
@@ -187,7 +187,7 @@ FIPS 204 signature on the same message + public key.
## Active versions
- Repo: `v0.1.0` (initial submission-readiness tag; next: `v0.1.1`).
- Repo: `v1.1.4` (current; patch-bump only, next `v1.1.5`).
- Pinned by: `luxfi/consensus v1.23.5+` (finality verify path replaces
the placeholder Pulsar-M verifier).
+6
View File
@@ -258,6 +258,12 @@ var forbiddenWireFieldFragments = []string{
"CS2", "CT0", "Cs2", "Ct0", "D2Masked", "D0Masked",
"R0Share", "LowBits", "HintShare", "HintInput", "MaskedCorrection",
"Residual",
// FullW / w-commitment: the full unmasked commitment w reconstructs the
// residual (w' - w == c·t0 - c·s2), so it must never appear in a production
// wire type. Guarded generically here (was NonceCert-specific only); a bare
// "W" fragment would over-match (Weight/Witness), so the specific w-bearing
// field names are listed.
"FullW", "LowBitsW",
}
func typeHasForbiddenField(t reflect.Type) (string, bool) {