code wiki / _hdl_build / nx_png_textw_gate.nx
nx_png_textw_gate.nx source
↩ module page · 60 lines · 3676 B
1// nx_png_textw_gate.nx -- proves the sovereign PNG tEXt writer produces ingest-readable,
2// structurally-valid PNGs. Composes R1 (nx_store_ingest_compute_cid): inject GENREC into a real
3// (no-tEXt) PNG -> nx_store_ingest harvests the 6 factors -> a CID is computed; IEND stays terminal;
4// a different injected prompt -> a different CID end-to-end. NO fake green: a writer that mangled
5// the chunk structure would make compute_cid fail (<0) -> RED.
6// license_tier: ORIGINAL
7import "nx_png_textw.nx"
8import "nx_store_ingest.nx"
9import "nx_syscalls.nx"
10
11func pg(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
12func pg_cideq(a: *u8, b: *u8) -> i64 { var i: i64=0; while i<69 { if (a[i]&0xff)!=(b[i]&0xff){return 0} i=i+1 } return 1 }
13
14// a minimal real PNG: sig(8) + IHDR(34th byte end) + IEND, NO tEXt. returns len=46.
15func pg_basepng(b: *u8) -> i64 {
16 b[0]=137 as u8; b[1]=80 as u8; b[2]=78 as u8; b[3]=71 as u8
17 b[4]=13 as u8; b[5]=10 as u8; b[6]=26 as u8; b[7]=10 as u8
18 b[8]=0 as u8; b[9]=0 as u8; b[10]=0 as u8; b[11]=14 as u8
19 b[12]=73 as u8; b[13]=72 as u8; b[14]=68 as u8; b[15]=82 as u8
20 b[16]=0 as u8; b[17]=0 as u8; b[18]=0 as u8; b[19]=0 as u8; b[20]=1 as u8
21 b[21]=0 as u8; b[22]=0 as u8; b[23]=0 as u8; b[24]=1 as u8; b[25]=8 as u8
22 b[26]=6 as u8; b[27]=0 as u8; b[28]=0 as u8; b[29]=0 as u8
23 b[30]=115 as u8; b[31]=22 as u8; b[32]=206 as u8; b[33]=242 as u8
24 b[34]=0 as u8; b[35]=0 as u8; b[36]=0 as u8; b[37]=0 as u8
25 b[38]=73 as u8; b[39]=69 as u8; b[40]=78 as u8; b[41]=68 as u8
26 b[42]=174 as u8; b[43]=66 as u8; b[44]=96 as u8; b[45]=130 as u8
27 return 46
28}
29
30func main() -> i64 {
31 let base: *u8 = sys_mmap(4096)
32 let blen: i64 = pg_basepng(base)
33 let canon: *u8 = sys_mmap(8192)
34 let rk: *u8 = sys_mmap(96)
35
36 let d1: *u8 = sys_mmap(8192)
37 let l1: i64 = png_insert_genrec(base, blen, "100" as *u8, "zit" as *u8, "euler" as *u8, "8" as *u8, "laptop" as *u8, "a red fox" as *u8, d1)
38 if l1 < 0 { pg("PNGTEXTW FAIL: insert returned <0 (no IEND found)\n" as *u8); sys_exit(1); return 1 }
39 let cid1: *u8 = sys_mmap(80)
40 let r1: i64 = nx_store_ingest_compute_cid(d1, l1, cid1, canon, rk)
41 if r1 < 0 { pg("PNGTEXTW FAIL: ingest could not harvest injected GENREC (compute_cid <0)\n" as *u8); sys_exit(1); return 1 }
42 pg("GATE ROW inject-harvest: GREEN -- 6 GENREC tEXt injected into a real PNG; nx_store_ingest harvested them\n" as *u8)
43
44 if (d1[l1-8]&0xff)!=73 { pg("PNGTEXTW FAIL: IEND not terminal\n" as *u8); sys_exit(1); return 1 }
45 if (d1[l1-7]&0xff)!=69 { pg("PNGTEXTW FAIL: IEND not terminal\n" as *u8); sys_exit(1); return 1 }
46 if (d1[l1-6]&0xff)!=78 { pg("PNGTEXTW FAIL: IEND not terminal\n" as *u8); sys_exit(1); return 1 }
47 if (d1[l1-5]&0xff)!=68 { pg("PNGTEXTW FAIL: IEND not terminal\n" as *u8); sys_exit(1); return 1 }
48 pg("GATE ROW iend-preserved: GREEN -- IEND remains the terminal chunk after injection\n" as *u8)
49
50 let d2: *u8 = sys_mmap(8192)
51 let l2: i64 = png_insert_genrec(base, blen, "100" as *u8, "zit" as *u8, "euler" as *u8, "8" as *u8, "laptop" as *u8, "a blue dog" as *u8, d2)
52 let cid2: *u8 = sys_mmap(80)
53 nx_store_ingest_compute_cid(d2, l2, cid2, canon, rk)
54 if pg_cideq(cid1, cid2) == 1 { pg("PNGTEXTW FAIL: fox==dog CID through the writer (prompt not distinguishing)\n" as *u8); sys_exit(1); return 1 }
55 pg("GATE ROW writer-distinguishes: GREEN -- same image, different injected prompt -> different CID end-to-end\n" as *u8)
56
57 pg("PNG-TEXTW-GATE 3/3 GREEN -- sovereign tEXt writer: inject->harvest + IEND-preserved + prompt-distinguishing\n" as *u8)
58 sys_exit(0)
59 return 0
60}