code wiki / (root) / nx_site_chrome_composable_gate_t48.nx

nx_site_chrome_composable_gate_t48.nx source

↩ module page · 58 lines · 4453 B

1// nx_site_chrome_composable_gate_t48.nx -- Validates and processes shared surface navigation data with security checks and HTML escaping. 2import "nx_site_chrome_composable_t48.nx" 3import "nx_gate_verdict.nx" 4func t48_len(p:*u8)->i64 {var n:i64=0;while p[n]!=(0 as u8) {n=n+1};return n} 5func t48_has(p:*u8,n:i64,t:*u8)->i64 {let m:i64=t48_len(t);var i:i64=0;while i+m<=n {var j:i64=0;while j<m {if p[i+j]!=t[j] {break};j=j+1};if j==m {return 1};i=i+1};return 0} 6func main()->i64 { 7 let c:*i64=gv_ctr();let sz:*i64=sys_mmap(16) as *i64 8 let registry:*u8=sys_read_file("/volume1/homes/elderwesto/nishihost/surfaces.reg" as *u8,sz) 9 gv_check("actual shared surface registry read" as *u8,(registry as i64)>0&&sz[0]>0,c) 10 if (registry as i64)<=0||sz[0]<=0 {return 3} 11 let out:*u8=sys_mmap(65537);out[65536]=173 as u8 12 let n:i64=sc_nav_buffer(out,0,65536,registry,sz[0]) 13 gv_check("shared navigation composes into bounded destination" as *u8,n>0&&n<65536,c) 14 gv_check("navigation keeps adjacent guard" as *u8,out[65536]==(173 as u8),c) 15 let exact:*u8=sys_mmap(n+1);exact[n]=173 as u8 16 let actual:i64=sc_nav_buffer(exact,0,n,registry,sz[0]) 17 gv_check("exact destination succeeds without terminator overrun" as *u8,actual==n&&exact[n]==(173 as u8),c) 18 var same:i64=1;var i:i64=0;while i<n {if exact[i]!=out[i] {same=0};i=i+1} 19 gv_check("repeat emits byte-identical shared component" as *u8,same==1,c) 20 let short:*u8=sys_mmap(n+1);short[n-1]=173 as u8 21 gv_check("short destination refused" as *u8,sc_nav_buffer(short,0,n-1,registry,sz[0])<0,c) 22 gv_check("short destination never crosses boundary" as *u8,short[n-1]==(173 as u8),c) 23 gv_check("invalid starting offset refused" as *u8,sc_nav_buffer(short,n+1,n,registry,sz[0])<0,c) 24 25 let fieldout:*u8=sys_mmap(9);fieldout[8]=173 as u8 26 gv_check("oversize field refuses before copy" as *u8,sc_field("123456789" as *u8,0,9,0,fieldout,8)<0&&fieldout[8]==(173 as u8),c) 27 gv_check("exact field retains terminator and guard" as *u8,sc_field("1234567" as *u8,0,7,0,fieldout,8)==7&&fieldout[7]==(0 as u8)&&fieldout[8]==(173 as u8),c) 28 let invalid:*u8="/x|Play||x|public|1|desc" as *u8 29 gv_check("missing title refused without output" as *u8,sc_nav_buffer(out,0,65536,invalid,t48_len(invalid))<0,c) 30 gv_check("external scheme refused" as *u8,sc_route_ok("javascript:alert(1)" as *u8)==0,c) 31 gv_check("network relative route refused" as *u8,sc_route_ok("//evil.test" as *u8)==0,c) 32 gv_check("internal route accepted" as *u8,sc_route_ok("/beta/beach?x=1&y=2" as *u8)==1,c) 33 var esc:SiteChromeSink;esc.fd=-1;esc.data=out;esc.pos=0;esc.capacity=65536;esc.failed=0 34 sc_escape(&esc,"<&>" as *u8);out[esc.pos]=0 as u8 35 gv_check("HTML text escaped" as *u8,streq(out,"&lt;&amp;&gt;" as *u8)==1,c) 36 gv_check("invalid output descriptor propagated" as *u8,mark_svg(999999)!=0&&css_nav(999999)!=0,c) 37 38 39 let longrow:*u8=sys_mmap(2048);let prefix:*u8="/x|Play|";var k:i64=0 40 while k<8 {longrow[k]=prefix[k];k=k+1};while k<264 {longrow[k]=65 as u8;k=k+1} 41 let suffix:*u8="|x|public|1|desc";var q:i64=0;while suffix[q]!=(0 as u8) {longrow[k]=suffix[q];k=k+1;q=q+1} 42 out[0]=173 as u8 43 gv_check("long registry title refused before output" as *u8,sc_nav_buffer(out,0,65536,longrow,k)<0&&out[0]==(173 as u8),c) 44 let inj:*u8="/x?a=1&b=2|Play|<title>|x|public|1|<desc>" as *u8 45 let safe:i64=sc_nav_buffer(out,0,65536,inj,t48_len(inj)) 46 gv_check("actual registry href and text escaped" as *u8,safe>0&&t48_has(out,safe,"/x?a=1&amp;b=2" as *u8)==1&&t48_has(out,safe,"&lt;title&gt;" as *u8)==1&&t48_has(out,safe,"&lt;desc&gt;" as *u8)==1,c) 47 gv_check("native details has no singleton checkbox" as *u8,t48_has(out,safe,"<details" as *u8)==1&&t48_has(out,safe,"nxtgl" as *u8)==0,c) 48 let malformed:*u8="/x|Other|Title|x|public|1|desc" as *u8 49 gv_check("unknown section refused" as *u8,sc_registry_ok(malformed,t48_len(malformed))==0,c) 50 51 let crlf:*u8="/x|Play|Title|x|public|1|desc\r\n" as *u8 52 gv_check("CRLF registry accepted" as *u8,sc_registry_ok(crlf,t48_len(crlf))==1,c) 53 let legacy:*u8=sys_mmap(512) 54 gv_check("legacy five argument field remains callable" as *u8,field(crlf,0,t48_len(crlf)-1,0,legacy)==2&&streq(legacy,"/x" as *u8)==1,c) 55 let crn:i64=sc_nav_buffer(out,0,65536,crlf,t48_len(crlf)) 56 gv_check("CSS separator is real newline" as *u8,crn>0&&t48_has(out,crn,"}\\n.nxgrp" as *u8)==0&&t48_has(out,crn,"}\n.nxgrp" as *u8)==1,c) 57 return gv_verdict("SITE-CHROME-COMPOSABLE",c,"Private shared foundation seam; no browser or page adoption") 58}