Skip to content

Agent API_p10

grisun0 edited this page Oct 30, 2026 · 14 revisions

API (page 10 of 21)

Previous: API_p9.md

net/tls_crypto.c

Depends on: headers/tls.h, headers/tls_port.h

  • sha256_rotr (function) net/tls_crypto.c:33 static unsigned sha256_rotr(unsigned x, unsigned n)
  • sha256_init (function) net/tls_crypto.c:37 void sha256_init(struct sha256_ctx *c)
  • sha256_block (function) net/tls_crypto.c:50 static void sha256_block(struct sha256_ctx *c, const unsigned char *p)
  • sha256_update (function) net/tls_crypto.c:80 void sha256_update(struct sha256_ctx *c, const unsigned char *data, unsigned len)
  • sha256_final (function) net/tls_crypto.c:105 void sha256_final(struct sha256_ctx *c, unsigned char out[32])
  • sha256 (function) net/tls_crypto.c:126 void sha256(const unsigned char *data, unsigned len, unsigned char out[32])
  • hmac_sha256 (function) net/tls_crypto.c:135 void hmac_sha256(const unsigned char *key, unsigned klen, const unsigned char *d...
  • p_hash (function) net/tls_crypto.c:165 static void p_hash(const unsigned char *secret, unsigned secret_len, const uns...
  • tls_prf (function) net/tls_crypto.c:188 void tls_prf(const unsigned char *secret, unsigned secret_len, const char *label, co...
  • aes_xtime (function) net/tls_crypto.c:230 static unsigned aes_xtime(unsigned x)
  • aes_key_expand (function) net/tls_crypto.c:235 static void aes_key_expand(const unsigned char key[16], unsigned rk[44])
  • aes_mixcol (function) net/tls_crypto.c:253 static void aes_mixcol(unsigned a0, unsigned a1, unsigned a2, unsigned a3, ...
  • aes128_encrypt_block (function) net/tls_crypto.c:263 void aes128_encrypt_block(const unsigned char key[16], const unsigned c...
  • gf_shift_right (function) net/tls_crypto.c:321 static gf128 gf_shift_right(gf128 v)
  • word (function) net/tls_crypto.c:326 * of the low word (hi holds bits 64..127, lo bits 0..63). Masked in, * so the shift never branches on key bits. */...
  • gf_mul (function) net/tls_crypto.c:334 static gf128 gf_mul(gf128 z, gf128 h) -- z = z * h, in GF(2^128), MSB-first.
  • gf_put (function) net/tls_crypto.c:351 static gf128 gf_put(const unsigned char *p)
  • ghash_blocks (function) net/tls_crypto.c:361 static gf128 ghash_blocks(gf128 z, gf128 h, const unsigned char *data, unsigned len)
  • gcm_tag_core (function) net/tls_crypto.c:384 static void gcm_tag_core(const unsigned char key[16], const unsigned cha... -- if (len > 0) { unsigned char pad[16]; gf128 b; TLS_MEMSET(pad, 0, 16); TLS_MEMCPY(pad, data, len); b = gf_put(pad)...
  • gcm_ctr_core (function) net/tls_crypto.c:427 static void gcm_ctr_core(const unsigned char key[16], const unsigned cha...
  • tls_nonce (function) net/tls_crypto.c:450 static void tls_nonce(const unsigned char salt[4], unsigned long long seq, ... -- TLS_MEMCPY(blk, nonce, 12); blk[12] = (unsigned char)(ctr >> 24); blk[13] = (unsigned char)(ctr >> 16); blk[14] =...
  • gcm_tag (function) net/tls_crypto.c:457 static void gcm_tag(const unsigned char key[16], const unsigned char salt[4], ...
  • gcm_ctr (function) net/tls_crypto.c:467 static void gcm_ctr(const unsigned char key[16], const unsigned char salt[4], ...
  • aes128_gcm_seal (function) net/tls_crypto.c:475 int aes128_gcm_seal(const unsigned char key[16], const unsigned char salt[4],...
  • aes128_gcm_open (function) net/tls_crypto.c:487 int aes128_gcm_open(const unsigned char key[16], const unsigned char salt[4],...
  • aes128_gcm_seal_core (function) net/tls_crypto.c:505 int aes128_gcm_seal_core(const unsigned char key[16], const unsigned cha...
  • aes128_gcm_open_core (function) net/tls_crypto.c:516 int aes128_gcm_open_core(const unsigned char key[16], const unsigned cha...
  • bn_zero (function) net/tls_crypto.c:537 static void bn_zero(unsigned *a, int nw)
  • bn_is_zero (function) net/tls_crypto.c:542 static int bn_is_zero(const unsigned *a, int nw)
  • bn_cmp (function) net/tls_crypto.c:549 static int bn_cmp(const unsigned *a, const unsigned *b, int nw)
  • bn_add (function) net/tls_crypto.c:559 static unsigned bn_add(const unsigned *a, const unsigned *b, unsigned *r, int nw) -- for (i = 0; i < nw; i++) v |= a[i]; return v == 0; } static int bn_cmp(const unsigned *a, const unsigned *b, int nw)...
  • bn_sub (function) net/tls_crypto.c:571 static unsigned bn_sub(const unsigned *a, const unsigned *b, unsigned *r, int nw) -- /* r = a + b; returns carry out. static unsigned bn_add(const unsigned *a, const unsigned *b, unsigned *r, int nw) {...
  • bn_dbl_mod (function) net/tls_crypto.c:584 static void bn_dbl_mod(const unsigned *a, const unsigned *n, const unsigned *v, ... -- r = 2a mod n, for a < n. v = 2^(32nw) mod n = 2^(32nw) - n (the * Montgomery "one"): 2a + carry means 2a - 2^(32nw)...
  • bn_mont_mul (function) net/tls_crypto.c:596 static void bn_mont_mul(const unsigned *a, const unsigned *b, const unsigned *n, ... -- Montgomery multiplication. n is odd, n0inv = -n^(-1) mod 2^32. r = abR^-1 mod n, R = 2^(32nw). * a, b < n.
  • bn_mont_n0inv (function) net/tls_crypto.c:635 static unsigned bn_mont_n0inv(unsigned n0) -- carry = v >> 32; } s = (unsigned long long)t[nw] + carry; t[nw - 1] = (unsigned)s; t[nw] = t[nw + 1] + (unsigned)(s...
  • bn_mont_r2 (function) net/tls_crypto.c:643 static void bn_mont_r2(const unsigned *n, const unsigned *v, int nw, unsig... -- } else { for (i = 0; i < nw; i++) r[i] = t[i]; } } /* -n^(-1) mod 2^32 via Newton iteration (n0 must be odd). static...
  • bn_from_be (function) net/tls_crypto.c:663 static void bn_from_be(const unsigned char *bytes, unsigned len, unsigned ...
  • bn_to_be (function) net/tls_crypto.c:671 static void bn_to_be(const unsigned *a, unsigned char *out, unsigned len)
  • mont_init (function) net/tls_crypto.c:677 static void mont_init(struct mont_ctx *m, const unsigned char *p_bytes, uns...
  • mont_to (function) net/tls_crypto.c:689 static void mont_to(struct mont_ctx *m, const unsigned *a, unsigned *r)
  • mont_from (function) net/tls_crypto.c:693 static void mont_from(struct mont_ctx *m, const unsigned *a, unsigned *r)
  • mont_mul (function) net/tls_crypto.c:700 static void mont_mul(struct mont_ctx *m, const unsigned *a, const unsigned *b, ...
  • mont_sqr (function) net/tls_crypto.c:705 static void mont_sqr(struct mont_ctx *m, const unsigned *a, unsigned *r)
  • mont_add (function) net/tls_crypto.c:712 static void mont_add(struct mont_ctx *m, const unsigned *a, const unsigned *b, ... -- Field add/sub over the mont modulus (in Montgomery domain).
  • mont_sub (function) net/tls_crypto.c:721 static void mont_sub(struct mont_ctx *m, const unsigned *a, const unsigned *b, ...
  • mont_inv (function) net/tls_crypto.c:736 static void mont_inv(struct mont_ctx *m, const unsigned *a, unsigned *r) -- Field inverse via Fermat: a^(p-2) mod p (a in Montgomery domain; * the result stays in Montgomery domain).
  • ec_init (function) net/tls_crypto.c:848 static void ec_init(struct ec_curve *c, const unsigned char *p, const unsigne...
  • jpt_is_inf (function) net/tls_crypto.c:865 static int jpt_is_inf(const struct jpt *p, int nw)
  • jpt_set_inf (function) net/tls_crypto.c:869 static void jpt_set_inf(struct jpt *p, int nw)
  • jpt_copy (function) net/tls_crypto.c:875 static void jpt_copy(struct jpt *d, const struct jpt *s, int nw)
  • jpt_cswap (function) net/tls_crypto.c:885 static void jpt_cswap(struct jpt *a, struct jpt *b, unsigned mask, int nw) -- bn_zero(p->y, nw); bn_zero(p->z, nw); } static void jpt_copy(struct jpt *d, const struct jpt *s, int nw) { int i...
  • jpt_dbl (function) net/tls_crypto.c:896 static void jpt_dbl(struct ec_curve *c, const struct jpt *p1, struct jpt *p3) -- } /* Constant-time swap of two points on a 0/~0 mask. static void jpt_cswap(struct jpt *a, struct jpt *b, unsigned...
  • jpt_add (function) net/tls_crypto.c:936 static void jpt_add(struct ec_curve *c, const struct jpt *p1, const struct jpt *p2, ... -- mont_sqr(m, E, F); mont_add(m, D, D, t); /* 2D mont_sub(m, F, t, p3->x); /* X3 = F - 2D mont_sub(m, D...
  • jpt_scalar_mult (function) net/tls_crypto.c:980 static void jpt_scalar_mult(struct ec_curve *c, const struct jpt *base, ... -- Constant-iteration scalar multiplication: the classic ladder. * Fixed iteration count, no table lookups indexed by...
  • jpt_to_affine (function) net/tls_crypto.c:1007 static void jpt_to_affine(struct ec_curve *c, const struct jpt *p, unsi... -- Affine from Jacobian: x = X/Z^2, y = Y/Z^3.
  • jpt_from_affine (function) net/tls_crypto.c:1032 static int jpt_from_affine(struct ec_curve *c, const unsigned char *x_bytes, ... -- Affine from bytes with on-curve validation.
  • ec_curve_by_id (function) net/tls_crypto.c:1076 static struct ec_curve *ec_curve_by_id(int curve)
  • ec_boot (function) net/tls_crypto.c:1080 static void ec_boot(void)
  • p256_scalar_mult (function) net/tls_crypto.c:1088 int p256_scalar_mult(const unsigned char scalar[32], const unsigned char qx[...
  • p384_scalar_mult (function) net/tls_crypto.c:1101 int p384_scalar_mult(const unsigned char scalar[48], const unsigned char qx[...
  • p256_ecdh (function) net/tls_crypto.c:1114 int p256_ecdh(const unsigned char priv[32], const unsigned char peer_x[32], const u...
  • der_parse_sig (function) net/tls_crypto.c:1129 static int der_parse_sig(const unsigned char *sig, unsigned sig_len, con...
  • ecdsa_verify (function) net/tls_crypto.c:1163 int ecdsa_verify(int curve, const unsigned char pub_x[], const unsigned char pub_y[], ...
  • rsa_verify_digestinfo (function) net/tls_crypto.c:1261 static int rsa_verify_digestinfo(const unsigned char *em, unsigned em_len, ... -- EMSA-PKCS1-v1_5 DigestInfo check for an arbitrary hash: the encoding is 00 01 FF..
  • rsa_pkcs1_verify_raw (function) net/tls_crypto.c:1285 static int rsa_pkcs1_verify_raw(const unsigned char *n, unsigned n_len, ... -- diff |= em[i] ^ 0xff; } if (i >= em_len) return -1; /* no separator if (i < 10) return -1; /*...
  • rsa_pkcs1_verify_sha256 (function) net/tls_crypto.c:1326 int rsa_pkcs1_verify_sha256(const unsigned char *n, unsigned n_len, c...
  • rsa_pkcs1_verify_sha384 (function) net/tls_crypto.c:1340 int rsa_pkcs1_verify_sha384(const unsigned char *n, unsigned n_len, c...
  • sha384_rotr (function) net/tls_crypto.c:1386 static unsigned long long sha384_rotr(unsigned long long x, unsigned n)
  • sha384_raw (function) net/tls_crypto.c:1390 static void sha384_raw(const unsigned char *data, unsigned len, unsigned c...
  • sha384 (function) net/tls_crypto.c:1506 void sha384(const unsigned char *data, unsigned len, unsigned char out[48])
  • p256_point_valid (function) net/tls_crypto.c:1512 int p256_point_valid(const unsigned char x[32], const unsigned char y[32])
  • p256_pub (function) net/tls_crypto.c:1520 int p256_pub(const unsigned char priv[32], unsigned char x[32], unsigned char y[32])
  • p256_scalar_valid (function) net/tls_crypto.c:1539 int p256_scalar_valid(const unsigned char scalar[32])

net/tls_x509.c

Depends on: headers/tls.h, headers/tls_port.h

  • oid_eq (function) net/tls_x509.c:36 static int oid_eq(const unsigned char *bytes, unsigned len, const unsigned char...
  • der_next (function) net/tls_x509.c:51 static int der_next(const unsigned char *p, unsigned limit, unsigned *pos, st... -- Parse the TLV at p[pos]; advances pos to the first byte after it. * Returns 0 on success, -1 on any bound violation.
  • der_container (function) net/tls_x509.c:82 static int der_container(const unsigned char *p, unsigned limit, unsigned *pos, ... -- len = (len << 8) | p[(*pos)++]; } } else { len = p[(*pos)++]; } if (len > limit - *pos) return -1; out->val = p +...
  • days_from_civil (function) net/tls_x509.c:94 static long days_from_civil(int y, int m, int d)
  • der_time_to_days (function) net/tls_x509.c:106 static long der_time_to_days(const struct der_tlv *t) -- /* ---- Time ---- static long days_from_civil(int y, int m, int d) { long era, doe, yoe; int doy; y -= m <= 2 ?
  • name_find_cn (function) net/tls_x509.c:135 static int name_find_cn(const unsigned char *p, unsigned limit, struct x5... -- } if (mon < 1 || mon > 12 || day < 1 || day > 31 || year < 1970 || year > 2100) return -1; return...
  • san_add (function) net/tls_x509.c:178 static void san_add(struct x509_sans *out, const unsigned char *v, unsigned len)
  • san_parse (function) net/tls_x509.c:186 static void san_parse(const unsigned char *p, unsigned limit, struct x509_s... -- struct x509_sans { unsigned char dns[TLS_SAN_MAX][64]; unsigned len[TLS_SAN_MAX]; int count; }...
  • spki_parse (function) net/tls_x509.c:203 static int spki_parse(const unsigned char *p, unsigned limit, struct tls_pu... -- unsigned seq_len, pos = 0; out->count = 0; if (der_container(p, limit, &pos, &seq, &seq_len) != 0) return; pos = 0...
  • cert_parse (function) net/tls_x509.c:279 static int cert_parse(const unsigned char *der, unsigned len, struct x509_c...
  • ascii_lower (function) net/tls_x509.c:392 static int ascii_lower(int c)
  • host_match_exact (function) net/tls_x509.c:397 static int host_match_exact(const char *host, const unsigned char *name, ... -- } } } } return 0; } /* ---- Hostname matching ---- static int ascii_lower(int c) { return (c >= 'A' && c <= 'Z') ? c...
  • host_match_wildcard (function) net/tls_x509.c:410 static int host_match_wildcard(const char *host, const unsigned char *name, ... -- Wildcard: "*.example.com" matches exactly one label ("a.example.com", * never "a.b.example.com" nor "example.com").
  • host_matches (function) net/tls_x509.c:431 static int host_matches(const char *host, const struct x509_cert *leaf)
  • tls_x509_parse_pubkey (function) net/tls_x509.c:452 int tls_x509_parse_pubkey(const unsigned char *der, unsigned len, struc...
  • pubkey_equal (function) net/tls_x509.c:468 static int pubkey_equal(const struct tls_pubkey *a, const struct tls_pubkey *b) -- Trust anchors are matched by public key, not by self-signature: a presented root is often a cross-signed copy...
  • cert_verify_signature (function) net/tls_x509.c:479 static int cert_verify_signature(const struct x509_cert *cert, c... -- signature-verified: an attacker cannot present a top cert carrying an embedded root's public key unless the chain...
  • tls_x509_verify_chain (function) net/tls_x509.c:521 int tls_x509_verify_chain(const unsigned char *chain, unsigned chain_len, ...

progs/asm/aes.s

progs/asm/cp.s

progs/asm/cvmfmt.s

progs/asm/fib.s

progs/asm/freedom.s

progs/asm/http.s

progs/asm/json.s

progs/asm/ldhello.s

progs/asm/lz4.s

progs/asm/lzss.s

progs/asm/mtop.s

progs/asm/sign.s

progs/asm/w1.s

Next: API_p11.md

Start

Wiki

Agent Docs

Recipes

Clone this wiki locally