code wiki / (root) / nx_acme_issue.nx

nx_acme_issue.nx

buildroot/runtime/nx_acme_issue.nx

24154 B511 linesdepth 20pulls 147 transitivereach 1 importersview sourcekind tooltopic acme
docsdependenciesstructsconstsfunctions

about

nx_acme_issue.nx -- live ACME issuance drive loop (ES256, DNS-01). Composes the two ACME layers (both nx_syscalls graph): nx_acme_es256.nx -- ES256 JWS builders + DNS-01 + pubkey_from_priv nx_acme_http.nx -- TLS transport + JSON reader + header reader Built + tested INCREMENTALLY against Let's Encrypt PRODUCTION. The pre-challenge steps (directory / nonce / newAccount / newOrder / authz fetch) are NOT failed-validation-rate-limited, so they are safe to exercise repeatedly; only triggering a challenge that then fails counts against the 5/hour/hostname budget, so that step is gated separately. Stage selector: argv-free; this build does directory -> nonce -> newAccount -> newOrder -> authz fetch, printing each result. The account key is persisted (reused across renewals). license_tier: ORIGINAL

dependencies 2 imports · 1 importers

nx_acme_es256.nx nx_acme_http.nx nx_acme_issue.nx nx_acme_dns01_issue.nx

imports: nx_acme_es256.nxnx_acme_http.nx

imported by: nx_acme_dns01_issue.nx

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

main nx_trust_store_load_from_c sys_mmap sys_read_file sys_openat_rd sys_lseek sys_mmap ↻ sys_read sys_close nx_nss_certdata_parse sys_mmap ↻ _pat_class_cert _pat_value_octal _pat_end _find_newline _starts_with _parse_octal_line sys_mmap ↻ _is_space _decode_octal_escape _is_octal trust_store_alloc sys_mmap ↻ nx_x509_trust_store_load sys_mmap ↻ x509_parse sys_mmap ↻ asn1_cursor_init asn1_expect_tag sys_mmap ↻ asn1_read_tlv_header asn1_read_tag asn1_read_length asn1_read_length ↻ x509_read_tlv sys_mmap ↻ asn1_expect_tag ↻ x509_read_alg_id sys_mmap ↻ asn1_expect_tag ↻

structs

none

consts

21const ACME_MAGIC_2048: i64 = 2048
22const ACME_MAGIC_8192: i64 = 8192
23const ACME_MAGIC_16384: i64 = 16384
24const ACME_MAGIC_3000: i64 = 3000
25const ACME_MAGIC_4194304: i64 = 4194304
26const ACME_MAGIC_1779284141: i64 = 1779284141
27const ACME_MAGIC_65536: i64 = 65536
28const ACME_MAGIC_4096: i64 = 4096
30const ACME_ACCT_KEY_PATH: *u8 = "/tmp/acme_acct_key.bin\x00"

functions

33func acme_dup_cstr(src: *u8, off: i64, len: i64) -> *u8
43func acme_account_key(priv_limbs: *i64) -> i64
65func acme_print(label: *u8, label_n: i64, s: *u8, s_n: i64) -> i64
73func acme_nonce_from(resp: *u8, total: i64, r: *i64, out_n: *i64) -> *u8
85func acme_signed_post(priv: *i64, kid: *u8, kid_n: i64,
102func acme_find_http01(body: *u8, start: i64, len: i64,
called by 1: acme_do_http01 calls 1: nx_acme_json_str
144func acme_json_array_nth(buf: *u8, start: i64, n: i64,
called by 1: main
184func acme_do_http01(au: *u8, aun: i64,
261func main() -> i64