feat(mcp): the books door served in-process for fuzzing (P12)
The local socket and the tunnel already mount the same four routes; naming that table `router` gives the fuzz targets the very door a client reaches, not a copy of it. `local/fuzz_door` (behind the `fuzzing` feature, off in every shipped build) builds a book, two live tokens and that router, and answers one request through `tower::oneshot`: no socket, no port, no clock. The target's oracle is then the code that enforces it: INVARIANT 8 (a book only behind a live bearer token) is checked by asking `Books::bearer`, not by a second model of the rule that could drift from it.
This commit is contained in:
1 parent
4b0196e416
commit
5e474cd1ac
3 files changed
+210
-7
No files matched your search
@@ -39,12 +39,18 @@ toml = "1"
|
||||
# The vault's TINs, decoded for the filing scan (tin_files.rs), are wiped
|
||||
# from memory when dropped, as the vault's own are.
|
||||
zeroize = "1"
|
||||
tempfile = { version = "3", optional = true }
|
||||
|
||||
# The socket's peer credentials (SO_PEERCRED, getpeereid) for local.rs's
|
||||
# same-user check: std has no call for them.
|
||||
[target.'cfg(unix)'.dependencies]
|
||||
libc = "0.2"
|
||||
|
||||
[features]
|
||||
# The door in-process, for fuzz/ (local.rs fuzz_door). Off in every build
|
||||
# but the fuzz workspace's.
|
||||
fuzzing = ["dep:tempfile"]
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
|
||||
Reference in new issue
Block a user