nx_ecdsa_sig_der_384.nx
buildroot/runtime/nx_ecdsa_sig_der_384.nx
about
nx_ecdsa_sig_der_384.nx -- parse DER-encoded ECDSA-P384 signatures
into (r, s) U384 scalars.
Parallel to nx_ecdsa_sig_der.nx (which targets U256 / P-256). The
DER shape is identical -- SEQUENCE { INTEGER r, INTEGER s } -- but
the magnitude width changes from 32 to 48 bytes:
- 48 bytes when leading bit is 0
- 49 bytes when leading bit is 1 (DER 0x00 sign prefix)
- fewer than 48 bytes when high bytes happen to be zero
Public API:
nx_ecdsa_sig_parse_der_384(buf, len, out_r, out_s) -> verdict
Sealed verdict enum mirrors nx_ecdsa_sig_der's; reuses the same
constants (NX_ECDSA_DER_*).
Per Cardinals 9 (single-responsibility -- parse, not verify),
12 (defensive at boundaries -- bounded reads), 23 (preamble
explains why 49-byte INTEGER is normal for P-384).
license_tier: INDEPENDENT_REDERIVE
genealogy_id: international-research-sources/ietf/rfc_3279 + rfc_5480 + itu_t/x_690
lineage_id: nishi_ecdsa_sig_der_384_q10
dependencies 4 imports · 2 importers
imports: nx_syscalls.nxnx_u384.nxnx_asn1.nxnx_ecdsa_sig_der.nx
imported by: nx_ecdsa_p384_real_bisect_test.nxnx_x509_verify_ecdsa_p384.nx
structs
| none |
consts
| none |
functions
| 43 | func ecdsa_int_load_384(out: *i64, bytes: *u8, off: i64, len: i64) -> i64 |
| 73 | func nx_ecdsa_sig_parse_der_384(buf: *u8, len: i64, called by 2: mainnx_x509_verify_ecdsa_p384 calls 4: sys_mmapasn1_cursor_initasn1_expect_tagecdsa_int_load_384 |
| 115 | func main() -> i64 |