code wiki / _hdl_build / nx_video_2party_probe.nx

nx_video_2party_probe.nx source

↩ module page · 74 lines · 4543 B

1// nx_video_2party_probe.nx -- LIVE end-to-end media fan-out proof (operator: "I want our video system to 2// WORK"). Opens TWO concurrent TLS-1.3 + WebSocket sessions to the REAL nishifamily.com/signal/<room>, 3// has peer A send a masked WS BINARY frame with a known marker, and verifies peer B RECEIVES that marker 4// via the relay's content-blind broadcast -- proving media actually flows peer -> relay -> peer over the 5// real edge (TLS -> sites.elf /signal pump -> nx_signaling_v2 -> broadcast). Beyond serve+upgrade: this is 6// the "two people actually see each other" proof. 7// The TLS-record + RFC-6455 client-session glue now lives in the SHARED nx_ws_client_session.nx (wscs_*), 8// so this probe and the mobile-native client (nx_video_native_client_gate) use ONE implementation (DRY). 9// usage: nx_video_2party_probe [room] (default room "nx2ptest") 10// expect_exit: 0 license_tier: ORIGINAL 11import "nx_syscalls.nx" 12import "nx_ws_client_session.nx" // wscs_connect / wscs_send / wscs_ws_recv (+ transitive TLS/WS/trust/frame) 13const K_MAGIC_4194304: i64 = 4194304 14 15func p2w(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 16func p2n(v: i64) -> i64 { 17 let b: *u8=sys_mmap(28); var m: i64=v; if m<0{sys_write(1,"-" as *u8,1);m=0-m} 18 let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=48 as u8;k=1} while m>0{t[k]=(48+(m%10)) as u8;m=m/10;k=k+1} 19 var i: i64=0; while i<k{b[i]=t[k-1-i];i=i+1} sys_write(1,b,k); return 0 } 20func p2_slen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} return n } 21 22func main(argc: i64, argv: *i64) -> i64 { 23 p2w("=== nx_video_2party_probe: LIVE media fan-out A -> relay -> B over the real edge ===\n" as *u8) 24 let r: i64 = nx_trust_store_load_from_certdata("data/mozilla_certdata.txt\x00" as *u8, 512, K_MAGIC_4194304) 25 if r <= 0 { p2w("trust store load failed\n" as *u8); return 1 } 26 let store: *TrustStore = r as *TrustStore 27 // room in the URL path; default nx2ptest 28 let url: *u8 = "https://nishifamily.com/signal/nx2ptest\x00" as *u8 29 p2w(" connecting peer A + peer B to /signal/nx2ptest ...\n" as *u8) 30 let sa: *i64 = sys_mmap(16) as *i64 31 let fa: *i64 = sys_mmap(16) as *i64 32 let sb: *i64 = sys_mmap(16) as *i64 33 let fb: *i64 = sys_mmap(16) as *i64 34 if wscs_connect(store, url, 0xC0, sa, fa) != 1 { p2w("PEER-A connect/upgrade FAILED\n" as *u8); return 1 } 35 p2w(" peer A: WebSocket 101 OK\n" as *u8) 36 if wscs_connect(store, url, 0x30, sb, fb) != 1 { p2w("PEER-B connect/upgrade FAILED\n" as *u8); return 1 } 37 p2w(" peer B: WebSocket 101 OK (both in the room)\n" as *u8) 38 let sessA: *Tls13ClientSession = sa[0] as *Tls13ClientSession 39 let sessB: *Tls13ClientSession = sb[0] as *Tls13ClientSession 40 41 // A sends a masked WS BINARY frame carrying a known marker 42 let marker: *u8 = "NISHI-FANOUT-PROOF-40402" as *u8 43 let mlen: i64 = p2_slen(marker) 44 let frame: *u8 = sys_mmap(256) 45 let mask: i64 = 0x5A6B7C8D 46 let hn: i64 = ws_build_header(frame, 256, 1, WS_OP_BINARY, 1, mask, mlen) 47 var c: i64 = 0 48 while c < mlen { frame[hn + c] = marker[c]; c = c + 1 } 49 ws_apply_mask(frame, hn, mlen, mask) 50 if wscs_send(sessA, fa[0], frame, hn + mlen) != 0 { p2w("A send FAILED\n" as *u8); return 1 } 51 p2w(" peer A sent a masked BINARY frame: '"); p2w(marker); p2w("'\n" as *u8) 52 53 // B reads a WS frame -> verify it is A's marker (the relay fanned it out) 54 let got: *u8 = sys_mmap(256) 55 let glen: i64 = wscs_ws_recv(sessB, fb[0], got, 256) 56 p2w(" peer B received "); p2n(glen); p2w(" bytes: '"); if glen > 0 { sys_write(1, got, glen) } p2w("'\n" as *u8) 57 var ok: i64 = 0 58 if glen == mlen { 59 ok = 1 60 var i: i64 = 0 61 while i < mlen { if got[i] != marker[i] { ok = 0; i = mlen } else { i = i + 1 } } 62 } 63 sys_close(fa[0]); sys_close(fb[0]) 64 65 let lf: i64 = sys_openat_append("knowledge/status/video_2party.log" as *u8, 420) 66 if lf >= 0 { 67 sys_write(lf, "VIDEO2PARTY a_upgrade=1 b_upgrade=1 b_received=" as *u8, 46); let nb: *u8=sys_mmap(8); nb[0]=(48+glen/100%10) as u8; nb[1]=(48+glen/10%10) as u8; nb[2]=(48+glen%10) as u8 68 if ok==1 { sys_write(lf, "B verdict=GREEN\n" as *u8, 15) } else { sys_write(lf, "B verdict=RED\n" as *u8, 13) } 69 sys_close(lf) 70 } 71 if ok == 1 { p2w("VIDEO-2PARTY-PROOF verdict=GREEN -- A's media frame reached B via the LIVE relay (fan-out WORKS)\n" as *u8); return 0 } 72 p2w("VIDEO-2PARTY-PROOF verdict=RED -- B did not receive A's frame\n" as *u8) 73 return 1 74}