nx_acme_es256.nx
buildroot/runtime/nx_acme_es256.nx
about
nx_acme_es256.nx -- ACME (RFC 8555) request builders for the ES256
account-key path, on the nx_syscalls graph.
WHY a second ACME file: the legacy nx_acme.nx is EdDSA + sits on the
nx_syscalls_x86_64 graph (via nx_jose/nx_jwk). Let's Encrypt's
production CA does NOT accept Ed25519 account keys -- it requires ES256
(ECDSA P-256) or RS256 -- and the whole HTTPS client + P-256 crypto +
CSR stack lives on the nx_syscalls graph. Two syscall variants define
duplicate sys_* symbols and cannot link together, so the ES256 ACME
client must be its own file on the nx_syscalls graph. This supersedes
nx_acme.nx for live issuance.
Composes (all nx_syscalls graph):
nx_jose_es256.nx -- ES256 JWS flattened sign + nxes_put_* + pubkey
nx_jwk_ec.nx -- EC P-256 JWK emit + RFC 7638 thumbprint
nx_acme_csr.nx -- ECDSA P-256 PKCS#10 CSR (pulls nx_x509_build hub)
nx_https_client.nx-- live HTTPS POST/GET to the CA (next slice)
This file is the REQUEST-BUILDER + DNS-01 layer. All functions here
are offline-deterministic and KAT-verifiable; the live state-machine
drive (newNonce -> newAccount -> newOrder -> authz -> dns-01 -> poll ->
finalize -> download) layers on top using nx_https_client.
license_tier: ORIGINAL (composes RFC 8555 + RFC 7515/7518/7638 + P-256)
dependencies 3 imports · 1 importers
imports: nx_jose_es256.nxnx_jwk_ec.nxnx_acme_csr.nx
imported by: nx_acme_issue.nx
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 29 | const NXACMEES_MAGIC_1024: i64 = 1024 |
| 30 | const NXACMEES_MAGIC_4096: i64 = 4096 |
| 32 | const NXACMEES_OK: i64 = 0 |
| 33 | const NXACMEES_OOM: i64 = 1 |
| 34 | const NXACMEES_BAD_ARG: i64 = 2 |
| 35 | const NXACMEES_SIGN_ERR: i64 = 3 |
functions
| 41 | func nx_acme_es256_protected_jwk_form( |
| 64 | func nx_acme_es256_protected_kid_form( |
| 89 | func nx_acme_payload_new_account( |
| 102 | func nx_acme_payload_new_order( |
| 124 | func nx_acme_payload_finalize( |
| 148 | func nx_acme_key_authorization( |
| 169 | func nx_acme_dns01_txt_value( |
| 201 | func nx_acme_build_new_account_jws_es256( |
| 229 | func main() -> i64 |