From 23affdaa7979d960f220630b70d063f243785dfd Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Tue, 6 Oct 2026 11:52:47 +0200 Subject: [PATCH] evidence: R-502 first full run (73 checks, decoy convicted), R-624 bench (vaultwarden admin seed + guard) Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS --- .../r502-first-full-run.txt | 108 ++++++++++++++++++ .../r624-bench/r624-vaultwarden-guard.tgz | Bin 0 -> 1637 bytes .../r624-bench/r624-vaultwarden-positive.tgz | Bin 0 -> 2238 bytes 3 files changed, 108 insertions(+) create mode 100644 documentation/audits/ten-answers-2026-10-06/r502-first-full-run.txt create mode 100644 documentation/audits/ten-answers-2026-10-06/r624-bench/r624-vaultwarden-guard.tgz create mode 100644 documentation/audits/ten-answers-2026-10-06/r624-bench/r624-vaultwarden-positive.tgz diff --git a/documentation/audits/ten-answers-2026-10-06/r502-first-full-run.txt b/documentation/audits/ten-answers-2026-10-06/r502-first-full-run.txt new file mode 100644 index 00000000..36b58232 --- /dev/null +++ b/documentation/audits/ten-answers-2026-10-06/r502-first-full-run.txt @@ -0,0 +1,108 @@ +TEST: D: direct env -> run_direct, NO appliance calls +felhom-bootstrap: console: pvebanner.service masked (it would rewrite /work/issue with the Proxmox admin URL on every boot) +felhom-bootstrap: console: /work/issue is the Felhom text (no admin URL) +felhom-bootstrap: fetching host-install: https://felhom.eu/scripts/felhom-host-install.sh +felhom-bootstrap: running host-install (customer=acme mode=appliance hub=https://hub.example) +felhom-bootstrap: host-install SUCCESS — writing done-flag, disabling unit, scrubbing secrets + ok: run_direct exited 0 (host-install stub succeeded) + ok: host-install was invoked + ok: ZERO /appliance/register calls + ok: ZERO /appliance/poll calls + ok: done-flag written + ok: env shredded on success + ok: G1: gate made zero ip calls + ok: G1: gate made zero ifreload calls + ok: G1: gate made zero dhclient calls + ok: G1: gate consumed zero sleeps + ok: G1: interfaces fixture untouched + ok: R-496: /etc/issue written + ok: R-496: /etc/issue is the Felhom text + ok: R-496: /etc/issue carries no admin URL (:8006) + ok: R-496: /etc/issue does not say Proxmox + ok: R-496: pvebanner.service masked + ok: R-496: /etc/issue carries no ő/ű (the boot font lacks them) +TEST: P: pairing env -> register + in-script 204 wait -> 200 delivery -> host-install, ONE invocation +felhom-bootstrap: console: pvebanner.service masked (it would rewrite /work/issue with the Proxmox admin URL on every boot) +felhom-bootstrap: console: /work/issue is the Felhom text (no admin URL) +felhom-bootstrap: PAIRING mode (generic ISO, no baked customer/passphrase) — hub=https://hub.example +felhom-bootstrap: registering unclaimed appliance at the hub +felhom-bootstrap: registered — appliance token stored (0600); waiting for the operator or a customer self-bind +felhom-bootstrap: not bound yet — polling every 30s until the operator or a customer self-bind lands (this is the normal waiting state, not an error) +felhom-bootstrap: bind DELIVERED — writing credentials to the env and switching to direct install +felhom-bootstrap: fetching host-install: https://felhom.eu/scripts/felhom-host-install.sh +felhom-bootstrap: running host-install (customer=drill mode=appliance hub=https://hub.example) +felhom-bootstrap: host-install SUCCESS — writing done-flag, disabling unit, scrubbing secrets + ok: R-496: banner painted to the console seam + ok: R-496: banner names the Tulajdonosi jelmondat + ok: R-496: banner no longer says 'jelszavad' + ok: R-559: the pairing banner's Hungarian block is byte-identical to the golden + ok: R-559: the pairing English block exists + ok: R-559: the pairing English block has no Hungarian letter + ok: R-559: CONTROL — the pairing Hungarian block does have one + ok: R-559: every pairing line fits 80 columns + ok: R-559: the bound banner's Hungarian block is byte-identical to the golden + ok: R-559: the bound English block exists + ok: R-559: the bound English block has no Hungarian letter + ok: R-559: CONTROL — the bound Hungarian block does have one + ok: R-559: every bound line fits 80 columns + ok: R-559: the pairing code appears in BOTH blocks + ok: R-559: the pairing banner fits a 25-row console (it is 24) + ok: R-559: the bound banner fits a 25-row console (it is 18) + ok: R-559: the bound banner carries no pairing code + ok: R-559: /etc/issue still opens with the golden Hungarian + ok: R-559: /etc/issue has an English half + ok: R-559: /etc/issue English half has no Hungarian letter + ok: R-559: /etc/issue names no admin URL + ok: single invocation ran to done (exit 0) + ok: POSTed /appliance/register + ok: appliance token persisted 0600 + ok: polled more than once (the wait lived in-script, not in systemd restarts) + ok: waited between polls (fake sleep called >=3x) + ok: host-install invoked after delivery + ok: done-flag written + ok: env shredded on success +TEST: 410: consumed delivery + no env -> exit non-zero so systemd restarts clean +felhom-bootstrap: console: pvebanner.service masked (it would rewrite /etc/issue with the Proxmox admin URL on every boot) +felhom-bootstrap: console: /etc/issue is the Felhom text (no admin URL) +felhom-bootstrap: PAIRING mode (generic ISO, no baked customer/passphrase) — hub=https://hub.example +felhom-bootstrap: registering unclaimed appliance at the hub +felhom-bootstrap: registered — appliance token stored (0600); waiting for the operator or a customer self-bind +felhom-bootstrap: ERROR: delivery already consumed but no local env — exiting so the unit restarts (rare crash-window) + ok: 410 poll exits non-zero + ok: host-install NOT run +TEST: G2: hub down + no state.json -> sweep finds nicB, persists (bak kept), proceeds to pairing + ok: sweep re-pointed vmbr0 to nicB + ok: winner persisted with DHCP addressing + ok: fallback static address dropped + ok: original saved as interfaces.felhom-bak + ok: self-heal logged loudly + ok: proceeded to pairing after the heal + ok: sweep exercised ifreload +TEST: G3: hub down everywhere -> console screen painted, interfaces byte-identical, no bak +Terminated + ok: console screen painted (header) + ok: screen lists the NICs + ok: screen names the fallback signature + ok: screen carries the remedy line + ok: interfaces BYTE-IDENTICAL after failed sweep + ok: no .felhom-bak on failure (success-only persist) + ok: host-install never ran +TEST: G4: hub down + state.json present -> screen + retry, sweep NEVER invoked, interfaces untouched +Terminated + ok: sweep NEVER invoked: zero ifreload calls + ok: sweep NEVER invoked: zero dhclient calls + ok: interfaces untouched + ok: console screen still painted + ok: no-sweep branch logged +TEST: PI: postinst configure -> pvebanner masked by symlink, /etc/issue is Felhom's, exit 0 + ok: PI: postinst exits 0 + ok: PI: pvebanner.service -> /dev/null (masked by file) + ok: PI: /etc/issue is the Felhom text + ok: PI: /etc/issue carries no admin URL + ok: PI: /etc/issue carries no ő/ű + ok: PI: postinst and bootstrap write the SAME issue text +================================================== +ALL BOOTSTRAP-MODE TESTS PASSED + +iso-bootstrap: built-in decoy convicted (a banner that never paints -> harness exit 1) +iso-bootstrap gate OK — 73 harness checks green in felhom-iso-assistant:trixie diff --git a/documentation/audits/ten-answers-2026-10-06/r624-bench/r624-vaultwarden-guard.tgz b/documentation/audits/ten-answers-2026-10-06/r624-bench/r624-vaultwarden-guard.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ce200d29d83e3e4ae3bd7b9986ad2de78f733844 GIT binary patch literal 1637 zcmV-r2AcUFiwFP!000001MOLDPuoZk<}-iczKn7ofC|6Fd4c-GNi9uP)RLgUp}R|? zu(3DJ7H8MDyCy^}(*210h4)Kt)=nVMgn*iBxoZZb*!wawJM--9W4l@P%GSlu;-VLm z$c{y{wsdh(s^xO_i*on3&zo6Dl^A&1S=8{1pk zI6{gv>O-1Dl7zI=6_<&SdRm*2TcJ}l?pcyX7-LKi6CCD*{u9 zB5m@Akdvqg8!#`^9v{^A8}!!eZoU~{o^`deu?B%sSct_VK_0Nm2J~b!-$&v-^Oks>mx~Gx;|@1&$Bt4MSTsP z>s2lHx#g8$$c!5nu?FM=u4*7I5Fk_2_vS)8SKO0gV8FU=vULZ+g+<$=fU~YLHCjAg z$<1tR3t3>EP3H^LYlt-A# zjwx33I#$=g7|?-`qgyRRo|{6|YG=1y%7cCfVJ9UnPfd>u({YqdYYCG+)<_hVG0a#N z@wN5!tMzYv2!6*hCxgy1 zZ5WcbQ>o13f7$hI{#W)4|Enz1iFxv!^S^od$2zpMhk*tBzgVi2@8rKyDV10J|7*yK z|F8J}QzSwE2LJ!od+jO8y!s!AL4sMfdW@6!3r~VY?|*i@>Ye((Q{E}A>i^e}A6nkq z>6#3mz_FGf@7HH&{seR6*pykbZBM5s%$84&(u{JNKj=e#gxoW5w&rC-V~)=!rr6;> z;qWZwqSs>qBk?nM$tJ_tAc^S!D|1%*x8YSItE#D@S;?InjfpM@u<~&lE6@TYHKz@9 z(?~fzO3bOHwy`zBi7{1pWc9GNGqh&U*L+NQi1tZDu}1J7i^flr@JEWLC0?K!31juB zJZm=Q{lytHC!6veCt|vvc5SRdPDnVj&_P^`GhLrTrh-(diM@wvp6arV3Xw`h?FbK# z#JL98o5D-)8RtR@0WpR zXO`w!Z7oFW!G5g`zljt~3{qvbIWcFm2@k#0aF+9dlg8Ux{S1bEh8)!F3$AE@7_w*S zJwjHBdmy5mBK(khKt32=$VhMxj^6A85+-8{PygKL*|d&6QT;Q6oHLTmIGbtam?E!x zL>`9hoH;d4x-lBGGD2h}xK)14y|WMwd22_DbIKna#hbS=P%P#o+up4_Z?~q2oKI5S zZ?_KWuN!SRLK1HRb52LF5fV)tsYnO!?1TBxVd)r=kK}?Gg2zsmEGNTYg{|7SG0hpK0^6tflHY0 zV<;$Ij@7nXwPv%?#MMnxZ^Kkc9E%|?5wVjR_DN#%qH~l#2C2t+fdx3h3PvYu+?*`0 zGg;NvVtT%p)AN@kL}#;*J>rGhJpMO+_iKMpf`2K;SoHi~^>*&?KYY3@t@z*9kku!V j)hChFCy^)jN#t9Xg_W#iB`aCU|6Kk7rwr;p04M+eM+__O literal 0 HcmV?d00001 diff --git a/documentation/audits/ten-answers-2026-10-06/r624-bench/r624-vaultwarden-positive.tgz b/documentation/audits/ten-answers-2026-10-06/r624-bench/r624-vaultwarden-positive.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a40c36e8dfe36fc43191e917e41615fdcacbcb9c GIT binary patch literal 2238 zcma*m2|p8X0{~zdGhJlv7Rh}^$uV-|mJm}!n=nN*nOx;et~7Ja+_`d9O60awVhrUB z3C%K!3R#%_-}m=^g7^6jkMu(r*Z)9P-2-tmdO|}>><7E&{uyasHE;M@#3a6Jn&r8? zDJe#1ZfOsg*A!C6%Q~Yo`UhU`+p_v{vI7%r)=v=WP2KpW*9h`6jyP$eL*Av{&cDf{`vKF19he5z{%!G;@J$N}GAMOfz5v<44Ujm;M_(te~XBa7#|_?X%0MCiG+P{V<9M=$2z zuE{@7_Oyq;PC+K(444!O;G;qpz06NI4$c_p7YahJ^!^cia=}T9Nlt>u=`A40YaT+; zxD(k$7fql0d9XIVZ>r9GU~a+0{t8bie-;$4%n!G>KIju9jOB$pZ@+TJ3c1)y2Q#hDNoJc&(#dK$-o0=N0oEm^g=R;G=Z{G?s|%_JW( zBUjfpC|adxb$?eCTU4{g5^KZBK}bI{P?=2LW+JzswdOd1AFK-*3~r3s{v@p zD_l3pu;>p~7#@u9)g|yp(v>__Jfs`D?|$NXRq;9;DX;6lAd)rvSpHO;^BLi};0s}U z{(F_>Ws~|ys`Ou8%uCYPnlQYsk<2iA>yS*qKZ zkKB8^T}PR0oXE%Rk|7YnsoF3u0?$r>yUXJoot3XZ1*O|>F~@#z{U^VnXa~T;G$Vlf zbFnwO6h=fO2$TO8`gcU=Mu*%A+qgeb7N(JAgw>1kQh32+E5bVR*!2uv!WM9ucSstl z^0y;&l|OmO!|pIjS`S0rhe+i1U1m-CCvE@Z9Pf{pgabX*O}5p?aA?B3Cqz*&@G4!}+> z?CV>+VJDSb=S4O0cxo!)|L4V&UA4HdqQX1)BQ2P_8-)XGW0RfSII-={`Z6mx?Qmy_Zirz*bc`UxrRAW{((oeO7`jBn`J zCSI@{5_952NNjy6w2DAa$+-UL6==6&V%*{u5yBpA`sO{#q){^s9%M9&zLdV(d24rc zjiZH>cC?nO#Aw=|cp-zAnmwu9JrCi(#zRZz>Tb}A%vF@Yf6S%Cm=Nu4(Zpl9cIkE6 zP_h7_l7a9Zr-y44K)56JAe%w<4u1ID1$bYPkQw&f2bc$AxH1GvHglVHR_^V*e!DFz zJ)qq#fu??Qm+2@UVwEJ#Voeimu%DEV1m95V;a#MArmu@zJ>r6T=B;2_u(L@iv>>~f z8Dk{E;7`I}?v|<88SLld)h*d|T#y;u1fjZEQ{(+SGpKpgFO2Zf!Hz=<-Z`4wS+L|L zRkjzJ`Z;9Hy3`DaIGeWQAOS)^w5Pq-#DYi8~yJ#W% z13vJ%CDUXjF5R;%YfHV;~YA%Bg)F|CKH-s#@8*dpgi9g|r27Om@K!%OX&RyFzN@?Fa{xC9Pm~{n&r|^Ega{@pei~_}Di1 zH_$F$$Whyjnc48A0D*gZd%*v(vGurg#fpHFSQK$*1if>wh0eyHLtOiHV-HNkREf}v z0pIgy!{9P^6bL)Qz|s=CK;18}vP;?F{0d$JwK(g+z+e2V7|c#ndFlV@k2PDs7X22= I70$)=A2Ne_i2wiq literal 0 HcmV?d00001