code wiki / _hdl_build / nx_coe_intoto.nx

nx_coe_intoto.nx

buildroot/runtime/_hdl_build/nx_coe_intoto.nx

8181 B140 linesdepth 4pulls 5 transitivereach 0 importersview sourcekind tooltopic coe
docsdependenciesstructsconstsfunctions

about

nx_coe_intoto.nx -- CHAIN-OF-EVIDENCE in-toto/SLSA ATTESTATION EXPORT (F714, interop boundary) Reads the latest ed25519-signed frame (coe_signed.log) + the latest Merkle STH (coe_witness.log) and emits an in-toto ITE-6 Statement (https://in-toto.io/Statement/v1) that EXTERNAL Sigstore/SLSA verifiers can consume: subject.digest.sha256 = the content CID, predicate carries the frame hash, the ed25519 signature + public key, the transparency-log root + proof status, the 5 pillars, and the sovereign builder id. EXPORT-ONLY (boundary converter) -- we build ON our own primitives, never on in-toto; this just speaks its dialect at the edge. Written to knowledge/status/coe_intoto.json. Composes proven libs only: nx_str/nx_syscalls. x86-lane. license_tier: ORIGINAL

dependencies 3 imports · 0 importers

nx_str.nx nx_syscalls.nx nx_estate_path.nx nx_coe_intoto.nx

imports: nx_str.nxnx_syscalls.nxnx_estate_path.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main ep_anchor sys_openat_rd sys_close sys_chdir sys_mmap ci_puts sys_write nx_str_len sys_mmap ↻ sys_read_file sys_openat_rd ↻ sys_lseek sys_mmap ↻ sys_read sys_close ↻ sys_exit ci_line_end ci_find_tab ci_slice ci_cat ci_cq ci_q ci_cat ↻

structs

none

consts

12const CI_MAGIC_4096: i64 = 4096
14const CI_CAP: i64 = 1048576

functions

16func ci_puts(s: *u8) -> i64 { sys_write(1, s, nx_str_len(s)); return 0 }
called by 1: main calls 2: sys_writenx_str_len
17func ci_pi(v: i64) -> i64
29func ci_cat(dst: *u8, off: i64, s: *u8) -> i64 { var i: i64 = 0; while s[i] != (0 as u8) { dst[off+i] = s[i]; i = i + 1 } return off + i }
called by 2: ci_cqmain
30func ci_q(dst: *u8, off: i64) -> i64 { dst[off] = 34 as u8; return off + 1 }
called by 1: ci_cq
31func ci_cq(dst: *u8, off: i64, s: *u8) -> i64 { var o: i64 = ci_q(dst, off); o = ci_cat(dst, o, s); o = ci_q(dst, o); return o }
called by 1: main calls 2: ci_qci_cat
32func ci_line_end(b: *u8, i0: i64, n: i64) -> i64 { var e: i64 = i0; while e < n { if b[e] == (10 as u8) { return e } e = e + 1 } return n }
called by 1: main
33func ci_find_tab(b: *u8, i0: i64, e: i64) -> i64 { var j: i64 = i0; while j < e { if b[j] == (9 as u8) { return j } j = j + 1 } return e }
called by 1: main
34func ci_slice(b: *u8, i0: i64, e: i64, dst: *u8) -> i64 { var o: i64 = 0; var j: i64 = i0; while j < e { dst[o] = b[j]; o = o + 1; j = j + 1 } dst[o] = 0 as u8; return o }
called by 1: main
35func ci_write_file(path: *u8, buf: *u8, n: i64) -> i64
43func main() -> i64