code wiki / (root) / _aes128_gcm_throughput_bench.nx

_aes128_gcm_throughput_bench.nx

buildroot/runtime/_aes128_gcm_throughput_bench.nx

2091 B55 linesdepth 5pulls 7 transitivereach 0 importersview sourcekind benchtopic aes128
docsdependenciesstructsconstsfunctions

about

_aes128_gcm_throughput_bench.nx -- pure-software AES-128-GCM throughput baseline. Encrypts a 4 KiB plaintext buffer N times (= 16 MiB total) so paired wall-clock timing converts to MB/s. Target use: Establish the BASELINE for the pure-software substrate AES-128-GCM path so future silicon-ROI claims have a fixed number to beat: - vs OpenSSL software AES (~150 MB/s on modern x86_64) - vs OpenSSL AES-NI (~5000 MB/s on modern x86_64) - vs hypothetical Nishi-silicon AES instruction (Tier B+ MPW) Cardinal 25 ("build intelligence, never strip features"): this is ADDITIVE -- existing KAT smoke (nx_aes128_gcm_kat_smoke.sh) keeps guarding correctness; this script adds the throughput dimension. Algorithm under test: nx_aes128_gcm_seal(key, iv, aad=NULL, aad_len=0, pt, pt_len=4096, ct, tag) Returns: 0 (success); non-zero returns indicate setup failure that the wrapping smoke script will report.

dependencies 2 imports · 0 importers

nx_syscalls.nx nx_aes128_gcm.nx _aes128_gcm_throughput_bench.n

imports: nx_syscalls.nxnx_aes128_gcm.nx

imported by: nobody (leaf or entry point)

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

main sys_mmap nx_aes128_gcm_seal sys_mmap ↻ aes128_expand_key _aes_sbox _aes_rcon aes128_encrypt_block nx_ghash_reflect16 gh_byterev_bits gh_revtab sys_mmap ↻ gh_revbyte nx_ghash_mul_rev gh_clmul_core gh_scratch sys_mmap ↻ gh_clmul_mul256_acc gh_scratch ↻ gh_clmul_reduce256 gh_lshr nx_ghash_upd_rev gh_rev_scratch sys_mmap ↻ gh_byterev_bits ↻ gh_clmul_core ↻ nx_aes128_gcm_inc32 gcm_ctr_store nx_aes128_gcm_inc32 ↻ nx_ghash_upd_rev4 gh_agg_scratch sys_mmap ↻ gh_byterev_bits ↻ gh_clmul_mul256_acc ↻ gh_clmul_reduce256 ↻ nx_ghash_be64_put

structs

none

consts

none

functions

26func main() -> i64