nx_tls13_chrome_hello_gate.nx
buildroot/runtime/nx_tls13_chrome_hello_gate.nx
about
nx_tls13_chrome_hello_gate.nx -- SOVEREIGN referee: emit our Chrome-JA3 ClientHello, extract its JA3 fingerprint
(GREASE-filtered ciphers/extensions/curves/point-formats), and assert it EQUALS a real Chrome (~v120) JA3 string
EXACTLY. This proves Cloudflare-class CDNs will classify us as a browser (the R2f-A unblock). No network.
T1 the emitted hello PARSES (valid ClientHello structure)
T2 JA3 string == the known Chrome JA3 (ciphers,extensions,curves,pointformats -- the exact fingerprint)
T3 GREASE is PRESENT in ciphers[0] + extensions + groups (browser-shape, and the filter is load-bearing)
T4 the JA3 MD5 is stable/deterministic (emit twice -> same hash)
GREEN iff 4/4. license_tier: ORIGINAL expect_exit: 0
dependencies 5 imports · 0 importers
imports: nx_syscalls.nxnx_tls13_chrome_hello.nxnx_tls13_hello.nxnx_md5.nxnx_gate_verdict.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| none |
functions
| 15 | func gw(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } |
| 16 | func gn(v: i64) -> i64 { let b: *u8 = sys_mmap(24); var m: i64 = v; if m < 0 { gw("-" as *u8); m = 0 - m }; let t: *u8 = sys_mmap(24); 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 }; var i: i64 = 0; while i < k { b[i] = t[k - 1 - i]; i = i + 1 }; sys_write(1, b, k); return 0 } |
| 17 | func grow(name: *u8, ok: i64) -> i64 { if ok == 1 { gw(" PASS " as *u8) } else { gw(" FAIL " as *u8) } gw(name); gw("\n" as *u8); return ok } |
| 18 | func g_streq(a: *u8, b: *u8) -> i64 { var i: i64=0; while a[i]!=(0 as u8){ if a[i]!=b[i]{return 0} i=i+1 } if b[i]==(0 as u8){return 1} return 0 } called by 1: main |
| 21 | func is_grease(v: i64) -> i64 { let hi: i64 = (v >> 8) & 0xff; let lo: i64 = v & 0xff; if hi == lo { if (lo & 0x0f) == 0x0a { return 1 } } return 0 } called by 1: main |
| 23 | func ap_dec(dst: *u8, o: i64, v: i64, firstp: *i64) -> i64 |
| 32 | func ap_str(dst: *u8, o: i64, s: *u8) -> i64 { var i: i64 = 0; while s[i]!=(0 as u8) { dst[o]=s[i]; o=o+1; i=i+1 } return o } called by 1: main |
| 34 | func main() -> i64 |