Repository navigation
Agent API_p9
grisun0 edited this page Oct 23, 2026
·
11 revisions
Previous: API_p8.md
Depends on: kernel/time.c
Imported by: mcp/minios_mcp.py
-
parse_addon_yaml(function)mcp/minios_addons.py:73def parse_addon_yaml(text)-- Parse the strict YAML subset. -
fail(function)mcp/minios_addons.py:85def fail(lineno, why) -
validate_addon(function)mcp/minios_addons.py:205def validate_addon(addon, source)-- Check bounds and character sets. -
validate_addon_path(function)mcp/minios_addons.py:295def validate_addon_path(path)-- dst paths live on the ramdisk: relative, no '..', bounded charset. -
validate_shell_line(function)mcp/minios_addons.py:309def validate_shell_line(line)-- Build/verify lines are single printable-ASCII shell commands. -
load_addons_dir(function)mcp/minios_addons.py:323def load_addons_dir(addons_dir)-- Load every addon yaml; each entry is a dict or an error string. -
split_for_editor(function)mcp/minios_addons.py:347def split_for_editor(text)-- Split a source into editor-sized chunks. -
exit_code_of(function)mcp/minios_addons.py:372def exit_code_of(text) -
AddonState.__init__(method)mcp/minios_addons.py:380def __init__(self, path) -
AddonState.load(method)mcp/minios_addons.py:383def load(self) -
AddonState.save(method)mcp/minios_addons.py:393def save(self, addons) -
install_addon(function)mcp/minios_addons.py:401def install_addon(session, addon, cfg)-- Install one validated addon into the booted MiniOS session.
Depends on: kernel/time.c, mcp/minios_addons.py
-
env_config(function)mcp/minios_mcp.py:71def env_config()-- Resolve the configuration: defaults overridden by the environment. -
clamp_timeout(function)mcp/minios_mcp.py:89def clamp_timeout(ms)-- Clamp a requested wait to the bounded timeout range. -
validate_path(function)mcp/minios_mcp.py:102def validate_path(name)-- Reject file names the ramdisk or the shell would mishandle. -
validate_content(function)mcp/minios_mcp.py:118def validate_content(text)-- Reject lines the kernel readline cannot carry (printable ASCII). -
RPCError.__init__(method)mcp/minios_mcp.py:140def __init__(self, code, message) -
LogBuffer.__init__(method)mcp/minios_mcp.py:149def __init__(self, cap) -
LogBuffer.append(method)mcp/minios_mcp.py:155def append(self, data) -
LogBuffer.bytes_from(method)mcp/minios_mcp.py:163def bytes_from(self, pos) -
LogBuffer.text_from(method)mcp/minios_mcp.py:168def text_from(self, pos, end) -
LogBuffer.find(method)mcp/minios_mcp.py:175def find(self, marker, start) -
LogBuffer.wait_for(method)mcp/minios_mcp.py:179def wait_for(self, marker, start, timeout_ms)-- Block until marker appears at or after start; return position. -
LogBuffer.wait_for_any(method)mcp/minios_mcp.py:192def wait_for_any(self, markers, start, timeout_ms)-- Block until any of markers appears at or after start; return the earliest position found, or -1 when the timeout... -
MiniOSSession.__init__(method)mcp/minios_mcp.py:219def __init__(self, cfg) -
MiniOSSession.booted(method)mcp/minios_mcp.py:230def booted(self) -
MiniOSSession.status(method)mcp/minios_mcp.py:233def status(self) -
MiniOSSession.boot(method)mcp/minios_mcp.py:284def boot(self, timeout_ms) -
MiniOSSession.send(method)mcp/minios_mcp.py:356def send(self, line, timeout_ms) -
MiniOSSession.expect(method)mcp/minios_mcp.py:367def expect(self, marker, timeout_ms) -
MiniOSSession.snapshot(method)mcp/minios_mcp.py:381def snapshot(self, max_bytes) -
MiniOSSession.run_test(method)mcp/minios_mcp.py:391def run_test(self, commands, expect, refute, timeout_ms)-- Run a generic scenario: send a list of shell commands, then assert that each expected marker appears (and each... -
MiniOSSession.cat(method)mcp/minios_mcp.py:447def cat(self, path) -
MiniOSSession.run_python(method)mcp/minios_mcp.py:453def run_python(self, script, args, timeout_ms)-- Run a MicroPython script (or-ccode) inside MiniOS and return its output, including theexit code: Nline. -
MiniOSSession.cat_body(method)mcp/minios_mcp.py:464def cat_body(self, path, missing_ok)-- Read a ramdisk file and return exactly its bytes. -
MiniOSSession.write(method)mcp/minios_mcp.py:500def write(self, path, content) -
MiniOSSession.poweroff(method)mcp/minios_mcp.py:537def poweroff(self, timeout_ms) -
MiniOSSession.terminate(method)mcp/minios_mcp.py:557def terminate(self) -
MiniOSSession.close(method)mcp/minios_mcp.py:576def close(self) -
subprocess_launch(function)mcp/minios_mcp.py:580def subprocess_launch(cfg, slave_fd) -
MCPServer.__init__(method)mcp/minios_mcp.py:734def __init__(self, cfg) -
MCPServer.run(method)mcp/minios_mcp.py:738def run(self) -
main(function)mcp/minios_mcp.py:888def main()
-
run_one(function)mcp/mutate_mcp.sh:116-- Each mutant runs the suite in its own directory with its own pid file and addon state, so the runs are independent...
Depends on: headers/drivers/virtio_net.h, headers/net.h, headers/net/rtl8139.h, headers/sched.h, headers/tls.h
-
net_drv_send(function)net/net.c:38static int net_drv_send(const unsigned char *frame, unsigned len) -
net_drv_poll(function)net/net.c:43static void net_drv_poll(void) -
net_drv_present(function)net/net.c:48static int net_drv_present(void) -
net_put16(function)net/net.c:57static void net_put16(unsigned char *p, unsigned short v) -
net_put32(function)net/net.c:62static void net_put32(unsigned char *p, unsigned int v) -
net_get16(function)net/net.c:69static unsigned short net_get16(const unsigned char *p) -
net_get32(function)net/net.c:73static unsigned int net_get32(const unsigned char *p) -
net_checksum(function)net/net.c:78static unsigned short net_checksum(const void *data, unsigned len) -
net_arp_store(function)net/net.c:103static void net_arp_store(const unsigned char *ip, const unsigned char *mac) -
net_arp_lookup(function)net/net.c:118static int net_arp_lookup(const unsigned char *ip, unsigned char *mac_out) -
net_arp_request(function)net/net.c:129static void net_arp_request(const unsigned char *ip) -
net_arp_resolve(function)net/net.c:147static int net_arp_resolve(const unsigned char *ip, unsigned char *mac_out)-- kmemcpy(frame + 6, net_mac, NET_ETH_ALEN); net_put16(frame + 12, NET_ETHERTYPE_ARP); net_put16(frame + 14, 1)... -
net_ip_send(function)net/net.c:172static int net_ip_send(const unsigned char *dip, unsigned char proto, cons... -
net_udp_send(function)net/net.c:208static int net_udp_send(const unsigned char *dip, unsigned short sport, u... -
net_dns_parse(function)net/net.c:230static void net_dns_parse(const unsigned char *data, unsigned len)-- net_put16(pkt + 6, 0); /* checksum optional for UDP kmemcpy(pkt + 8, data, len); return... -
net_dns_resolve(function)net/net.c:268static int net_dns_resolve(const char *host, unsigned char ip_out[4])-- rtype = net_get16(data + pos); rdlen = net_get16(data + pos + 8); pos += 10; if (pos + rdlen > len) return; if... -
net_udp_send(function)net/net.c:329net_udp_send((const unsigned char[]) -
net_icmp_rx(function)net/net.c:348static void net_icmp_rx(const unsigned char *ip, unsigned len) -
net_ping(function)net/net.c:377static int net_ping(const unsigned char ip[4]) -
net_sock_alloc(function)net/net.c:469static struct net_tcp_sock *net_sock_alloc(void) -
net_sock_index(function)net/net.c:484static int net_sock_index(const struct net_tcp_sock *s) -
net_tcp_checksum(function)net/net.c:493static unsigned short net_tcp_checksum(const unsigned char *src, const unsigned char *dst, ...-- } } return 0; } static int net_sock_index(const struct net_tcp_sock *s) { int i; if (!net_sockets) return -1; for (i... -
net_udp_checksum_ok(function)net/net.c:509static int net_udp_checksum_ok(const unsigned char *src, const unsigned char *dst, ...-- const unsigned char *seg, unsigned len) { unsigned char buf[NET_TX_MAX + 12]; unsigned total = 12 + len... -
net_tcp_xmit(function)net/net.c:525static int net_tcp_xmit(struct net_tcp_sock *s, unsigned flags, const uns... -
net_tcp_rx(function)net/net.c:559static void net_tcp_rx(const unsigned char *ip, unsigned len) -
net_tcp_passive_open(function)net/net.c:687static int net_tcp_passive_open(struct net_tcp_sock *ls, const unsigned char peer[4], uns...-- Passive open: park a SYN_RCVD child on a LISTEN socket and answer SYN-ACK. -
net_tcp_connect_into(function)net/net.c:711static int net_tcp_connect_into(struct net_tcp_sock *s, const unsigned char ip[4], ...-- kmemcpy(c->dip, peer, 4); c->dport = pport; c->sport = lport; c->seq = net_tcp_seq; net_tcp_seq += 0x1000... -
net_tcp_send(function)net/net.c:738static int net_tcp_send(struct net_tcp_sock *s, const char *buf, int len)-- unsigned long retry = net_time_ms() + NET_RETRY_MS; while (net_time_ms() < retry && s->state == NET_TCP_SYN_SENT)... -
net_tcp_recv(function)net/net.c:764static int net_tcp_recv(struct net_tcp_sock *s, char *buf, int len)-- net_time_ms() < deadline) { unsigned long retry = net_time_ms() + NET_RETRY_MS; while (net_time_ms() < retry &&... -
net_tcp_close(function)net/net.c:802static void net_tcp_close(struct net_tcp_sock *s) -
net_rx_handle_frame(function)net/net.c:822void net_rx_handle_frame(const unsigned char *frame, unsigned len) -
net_open(function)net/net.c:886int net_open(void) -
net_connect(function)net/net.c:892int net_connect(const char *host, unsigned short port) -
net_send(function)net/net.c:901int net_send(int fd, const char *buf, int len) -
net_recv(function)net/net.c:906int net_recv(int fd, char *buf, int len) -
net_recv_timeout(function)net/net.c:911int net_recv_timeout(int fd, char *buf, int len, unsigned long timeout_ms) -
net_close(function)net/net.c:916void net_close(int fd) -
net_listen(function)net/net.c:927int net_listen(unsigned short port)-- Docstring: Allocate a socket bound to a local port and listening. * Returns the socket index, or -1 when the table... -
net_accept_nb(function)net/net.c:942int net_accept_nb(int fd)-- Docstring: Take a pending child off a LISTEN socket without waiting. -
polling(function)net/net.c:959* without polling (the peer's ACK arrives through the driver poll). */ int net_accept(int fd, uns... -
net_sock_state(function)net/net.c:976int net_sock_state(int fd)-- Docstring: Socket state for diagnostics (thenetbuiltin and the * httpd selftest). -1 on a wild fd. -
net_fd_udp(function)net/net.c:1096static int net_fd_udp(long fd) -
net_sys_is_socket(function)net/net.c:1102int net_sys_is_socket(long fd) -
net_udp_alloc(function)net/net.c:1106static struct net_udp_sock *net_udp_alloc(void) -
net_udp_ephemeral(function)net/net.c:1120static unsigned short net_udp_ephemeral(void)-- static struct net_udp_sock *net_udp_alloc(void) { int i; if (!net_udp_sockets) return 0; for (i = 0; i <... -
net_udp_deliver(function)net/net.c:1136static int net_udp_deliver(const unsigned char sip[4], unsigned short sport, ...-- Queue a received datagram on the user socket bound to dport (and, when connected, from that peer only). -
net_put_sockaddr(function)net/net.c:1158static void net_put_sockaddr(unsigned char *sa, const unsigned char ip[4], unsigned short port) -
net_store_sockaddr(function)net/net.c:1168static long net_store_sockaddr(long addr, long lenp, const unsigned char ip[4], ...-- Store a sockaddr_in at a user address with a user socklen_t length * pointer, truncating like Linux and reporting... -
net_load_sockaddr(function)net/net.c:1185static long net_load_sockaddr(long addr, long len, unsigned char ip[4], unsigned short *port)-- int len; if (!addr || !lenp) return 0; if (!user_range_ok((unsigned long)lenp, sizeof(int))) return -LNX_EFAULT; len... -
net_sys_socket(function)net/net.c:1222long net_sys_socket(long a1, long a2, long a3) -
net_sys_connect(function)net/net.c:1249long net_sys_connect(long fd, long sockaddr, long addrlen) -
net_sys_bind(function)net/net.c:1296long net_sys_bind(long fd, long sockaddr, long addrlen) -
net_sys_listen(function)net/net.c:1318long net_sys_listen(long fd, long backlog) -
net_sys_accept(function)net/net.c:1329long net_sys_accept(long fd, long sockaddr, long addrlen) -
net_send_bytes(function)net/net.c:1347static long net_send_bytes(long fd, const unsigned char *buf, long len, ...-- Send len validated bytes: a stream sends synchronously (stop-and-wait), * a datagram goes out as one UDP datagram to... -
net_sys_sendto(function)net/net.c:1375long net_sys_sendto(long fd, long buf, long len, long flags, long to, long tolen) -
net_sys_recvfrom(function)net/net.c:1390long net_sys_recvfrom(long fd, long buf, long len, long flags, long from, long fromlen) -
net_gather_msg(function)net/net.c:1450static long net_gather_msg(long msg, unsigned char *kbuf, long cap)-- long rc = net_store_sockaddr(from, fromlen, s->dip, s->dport); if (rc) return rc; } return (long)take; } if... -
net_sys_sendmsg(function)net/net.c:1470long net_sys_sendmsg(long fd, long msg, long flags) -
net_sys_sendmmsg(function)net/net.c:1498long net_sys_sendmmsg(long fd, long vec, long vlen, long flags)-- sendmmsg (307): glibc's resolver sends its A and AAAA queries together and treats ENOSYS as a failed lookup. -
net_sys_shutdown(function)net/net.c:1514long net_sys_shutdown(long fd, long how) -
net_sys_close(function)net/net.c:1523long net_sys_close(long fd) -
net_sys_setsockopt(function)net/net.c:1534long net_sys_setsockopt(long fd, long level, long name, long val, long len) -
net_sys_getsockopt(function)net/net.c:1569long net_sys_getsockopt(long fd, long level, long name, long val, long lenp) -
net_sys_getsockname(function)net/net.c:1616long net_sys_getsockname(long fd, long addr, long lenp) -
net_sys_getpeername(function)net/net.c:1625long net_sys_getpeername(long fd, long addr, long lenp) -
net_sys_fcntl(function)net/net.c:1643long net_sys_fcntl(long fd, long cmd, long arg)-- fcntl on a socket: O_NONBLOCK through F_GETFL/F_SETFL, FD_CLOEXEC recorded through F_GETFD/F_SETFD (sockets live in... -
net_sys_ioctl(function)net/net.c:1674long net_sys_ioctl(long fd, long req, long arg)-- ioctl on a socket: FIONREAD answers the bytes a read would return now (a stream's buffered bytes, the size of a... -
net_socket_revents(function)net/net.c:1707static unsigned short net_socket_revents(long fd)-- return 0; } } else { return -LNX_EBADF; } switch (req) { case LNX_FIONBIO: *nb = *(const int *)arg != 0; return 0... -
net_sys_poll(function)net/net.c:1727long net_sys_poll(long fds, long nfds, long timeout_ms) -
net_sys_dns(function)net/net.c:1767long net_sys_dns(long host)-- MiniOS syscall 200: resolve a hostname, returned as a network-order * 32-bit address (like inet_addr), or -1 on failure. -
net_parse_ip(function)net/net.c:1778static int net_parse_ip(const char *text, unsigned char ip[4]) -
net_cmd_status(function)net/net.c:1803void net_cmd_status(void) -
net_get_addrs(function)net/net.c:1825void net_get_addrs(unsigned char mac_out[NET_ETH_ALEN], unsigned char ip_out[4])-- kprintf("virtio-net iobase 0x%x\n", vnet_iobase()); } else { rtl_counters(&tx_frames, &rx_frames); kprintf("rtl8139... -
net_cmd_ping(function)net/net.c:1831void net_cmd_ping(const char *ip_text) -
net_cmd_dns(function)net/net.c:1842void net_cmd_dns(const char *host) -
net_register_symbols(function)net/net.c:1855void net_register_symbols(void) -
net_init(function)net/net.c:1863void net_init(void)
Depends on: headers/drivers/pci.h, headers/net.h, headers/net/rtl8139.h, headers/sched.h
-
outl_port(function)net/rtl8139.c:29static void outl_port(unsigned short port, unsigned int val)-- Byte/word port I/O comes from kernel.h (outb/inb/outw/inw, same asm). * Only the dword pair stays local: the shared... -
inl_port(function)net/rtl8139.c:33static unsigned int inl_port(unsigned short port) -
rtl_reg8(function)net/rtl8139.c:39static unsigned char rtl_reg8(unsigned short off) -
rtl_reg8_w(function)net/rtl8139.c:40static void rtl_reg8_w(unsigned short off, unsigned char v) -
rtl_reg16(function)net/rtl8139.c:41static unsigned short rtl_reg16(unsigned short off) -
rtl_reg16_w(function)net/rtl8139.c:42static void rtl_reg16_w(unsigned short off, unsigned short v) -
rtl_reg32(function)net/rtl8139.c:43static unsigned int rtl_reg32(unsigned short off) -
rtl_reg32_w(function)net/rtl8139.c:44static void rtl_reg32_w(unsigned short off, unsigned int v) -
rtl_find(function)net/rtl8139.c:58static unsigned short rtl_find(void)-- PCI config space lives in drivers/pci.h now (shared with virtio-blk and future devices); only the dword port pair... -
deleted(function)net/rtl8139.c:79`* been deleted (a second base/per-ms pair beside ktime's is a second
- clock, and drivers must n...`
-
rtl_present(function)net/rtl8139.c:107int rtl_present(void) -
rtl_reset(function)net/rtl8139.c:111static void rtl_reset(void) -
rtl_init(function)net/rtl8139.c:120void rtl_init(void) -
rtl_tx_wait(function)net/rtl8139.c:168static int rtl_tx_wait(unsigned slot, unsigned long deadline) -
rtl_send(function)net/rtl8139.c:177int rtl_send(const unsigned char *frame, unsigned len) -
rtl_get_mac(function)net/rtl8139.c:205void rtl_get_mac(unsigned char out[NET_ETH_ALEN]) -
rtl_iobase(function)net/rtl8139.c:210unsigned short rtl_iobase(void) -
rtl_counters(function)net/rtl8139.c:214void rtl_counters(unsigned int *tx_frames, unsigned int *rx_frames) -
rtl_poll(function)net/rtl8139.c:238void rtl_poll(void)
Depends on: headers/tls.h, headers/tls_port.h, headers/tls_roots.h
-
tls_fail(function)net/tls.c:25static void tls_fail(struct tls_session *s, const char *stage, const char *reason) -
tls_fd_of(function)net/tls.c:33static int tls_fd_of(const struct tls_session *s) -
tls_free_fd(function)net/tls.c:40void tls_free_fd(int fd) -
tls_aad(function)net/tls.c:52static void tls_aad(unsigned char aad[13], int type, unsigned long long seq, ...-- Build the TLS 1.2 AEAD additional data: seq(8) || type || 0303 || * TLSCompressed.length (the plaintext length, RFC... -
number(function)net/tls.c:64* The nonce_explicit is the sequence number (RFC 5288 allows it and * OpenSSL uses it); -
tls_send_record(function)net/tls.c:66static int tls_send_record(struct tls_session *s, int type, const unsi...-- Send one record: header || nonce_explicit(8) || ciphertext || tag. -
tls_send_raw_record(function)net/tls.c:95static int tls_send_raw_record(struct tls_session *s, int type, co...-- for (i = 0; i < 8; i++) buf[5 + i] = (unsigned char)(s->cli_seq >> (56 - i * 8)); TLS_MEMCPY(nonce, s->cli_salt, 4)... -
tls_read_record(function)net/tls.c:114static int tls_read_record(struct tls_session *s, int fd, int deadline_ms)-- Read one record: header into s->rec_hdr, payload into s->rec. -
exchange(function)net/tls.c:173`* key exchange (ClientHello, ClientKeyExchange) go out in plaintext
- records, as TLS 1.2 requir...`
-
build_client_hello(function)net/tls.c:190static int build_client_hello(struct tls_session *s, unsigned char *out)-- const unsigned char *body, int len) { if (len < 0 || len > 1024) return -1; s->pt[0] = (unsigned char)type; s->pt[1]... -
client_finish_flight(function)net/tls.c:244static int client_finish_flight(struct tls_session *s)-- out[pos++] = 0x00; out[pos++] = 0x06; out[pos++] = 0x04; out[pos++] = 0x01; /* rsa_pkcs1_sha256 out[pos++] = 0x04... -
parse_server_hello(function)net/tls.c:340static int parse_server_hello(struct tls_session *s, const unsigned... -
parse_certificate(function)net/tls.c:370static int parse_certificate(struct tls_session *s, const unsigned c... -
parse_server_key_exchange(function)net/tls.c:401static int parse_server_key_exchange(struct tls_session *s, ... -
tls_handshake(function)net/tls.c:466int tls_handshake(int fd, const char *host) -
tls_send(function)net/tls.c:687int tls_send(int fd, const char *buf, int len) -
tls_recv(function)net/tls.c:696int tls_recv(int fd, char *buf, int len) -
tls_sys_handshake(function)net/tls.c:772long tls_sys_handshake(long fd, long host)-- if !defined(TLS_TEST) && !defined(TLS_RING3) -
tls_sys_send(function)net/tls.c:777long tls_sys_send(long fd, long buf, long len) -
tls_sys_recv(function)net/tls.c:782long tls_sys_recv(long fd, long buf, long len) -
tls_rdtsc(function)net/tls.c:789static inline unsigned long long tls_rdtsc(void) -
tls_random(function)net/tls.c:795void tls_random(unsigned char *out, unsigned len) -
outb(function)net/tls.c:810static inline void outb(unsigned short port, unsigned char v)-- unsigned long long seed = tls_rdtsc() ^ ((unsigned long long)net_time_ms() << 33); unsigned i; static unsigned long... -
inb(function)net/tls.c:813static inline unsigned char inb(unsigned short port) -
cmos_read(function)net/tls.c:821static inline unsigned char cmos_read(unsigned char reg)-- /* The port helpers in net.c are static; these live here for the RTC. #ifndef PORT_IO_DEFINED #define... -
tls_now_days(function)net/tls.c:826long tls_now_days(void)
Depends on: headers/tls.h, headers/tls_port.h
-
sha256_rotr(function)net/tls_crypto.c:33static unsigned sha256_rotr(unsigned x, unsigned n) -
sha256_init(function)net/tls_crypto.c:37void sha256_init(struct sha256_ctx *c) -
sha256_block(function)net/tls_crypto.c:50static void sha256_block(struct sha256_ctx *c, const unsigned char *p) -
sha256_update(function)net/tls_crypto.c:80void sha256_update(struct sha256_ctx *c, const unsigned char *data, unsigned len) -
sha256_final(function)net/tls_crypto.c:105void sha256_final(struct sha256_ctx *c, unsigned char out[32]) -
sha256(function)net/tls_crypto.c:126void sha256(const unsigned char *data, unsigned len, unsigned char out[32]) -
hmac_sha256(function)net/tls_crypto.c:135void hmac_sha256(const unsigned char *key, unsigned klen, const unsigned char *d... -
p_hash(function)net/tls_crypto.c:165static void p_hash(const unsigned char *secret, unsigned secret_len, const uns... -
tls_prf(function)net/tls_crypto.c:188void tls_prf(const unsigned char *secret, unsigned secret_len, const char *label, co... -
aes_xtime(function)net/tls_crypto.c:230static unsigned aes_xtime(unsigned x) -
aes_key_expand(function)net/tls_crypto.c:235static void aes_key_expand(const unsigned char key[16], unsigned rk[44]) -
aes_mixcol(function)net/tls_crypto.c:253static void aes_mixcol(unsigned a0, unsigned a1, unsigned a2, unsigned a3, ... -
aes128_encrypt_block(function)net/tls_crypto.c:263void aes128_encrypt_block(const unsigned char key[16], const unsigned c... -
gf_shift_right(function)net/tls_crypto.c:321static 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:334static gf128 gf_mul(gf128 z, gf128 h)-- z = z * h, in GF(2^128), MSB-first. -
gf_put(function)net/tls_crypto.c:351static gf128 gf_put(const unsigned char *p) -
ghash_blocks(function)net/tls_crypto.c:361static gf128 ghash_blocks(gf128 z, gf128 h, const unsigned char *data, unsigned len) -
gcm_tag_core(function)net/tls_crypto.c:384static 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:427static void gcm_ctr_core(const unsigned char key[16], const unsigned cha... -
tls_nonce(function)net/tls_crypto.c:450static 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:457static void gcm_tag(const unsigned char key[16], const unsigned char salt[4], ... -
gcm_ctr(function)net/tls_crypto.c:467static void gcm_ctr(const unsigned char key[16], const unsigned char salt[4], ... -
aes128_gcm_seal(function)net/tls_crypto.c:475int aes128_gcm_seal(const unsigned char key[16], const unsigned char salt[4],... -
aes128_gcm_open(function)net/tls_crypto.c:487int aes128_gcm_open(const unsigned char key[16], const unsigned char salt[4],... -
aes128_gcm_seal_core(function)net/tls_crypto.c:505int aes128_gcm_seal_core(const unsigned char key[16], const unsigned cha... -
aes128_gcm_open_core(function)net/tls_crypto.c:516int aes128_gcm_open_core(const unsigned char key[16], const unsigned cha... -
bn_zero(function)net/tls_crypto.c:537static void bn_zero(unsigned *a, int nw) -
bn_is_zero(function)net/tls_crypto.c:542static int bn_is_zero(const unsigned *a, int nw) -
bn_cmp(function)net/tls_crypto.c:549static int bn_cmp(const unsigned *a, const unsigned *b, int nw) -
bn_add(function)net/tls_crypto.c:559static 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:571static 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:584static 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:596static 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:635static 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:643static 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:663static void bn_from_be(const unsigned char *bytes, unsigned len, unsigned ... -
bn_to_be(function)net/tls_crypto.c:671static void bn_to_be(const unsigned *a, unsigned char *out, unsigned len) -
mont_init(function)net/tls_crypto.c:677static void mont_init(struct mont_ctx *m, const unsigned char *p_bytes, uns... -
mont_to(function)net/tls_crypto.c:689static void mont_to(struct mont_ctx *m, const unsigned *a, unsigned *r) -
mont_from(function)net/tls_crypto.c:693static void mont_from(struct mont_ctx *m, const unsigned *a, unsigned *r) -
mont_mul(function)net/tls_crypto.c:700static void mont_mul(struct mont_ctx *m, const unsigned *a, const unsigned *b, ... -
mont_sqr(function)net/tls_crypto.c:705static void mont_sqr(struct mont_ctx *m, const unsigned *a, unsigned *r) -
mont_add(function)net/tls_crypto.c:712static 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:721static void mont_sub(struct mont_ctx *m, const unsigned *a, const unsigned *b, ... -
mont_inv(function)net/tls_crypto.c:736static 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:848static void ec_init(struct ec_curve *c, const unsigned char *p, const unsigne... -
jpt_is_inf(function)net/tls_crypto.c:865static int jpt_is_inf(const struct jpt *p, int nw) -
jpt_set_inf(function)net/tls_crypto.c:869static void jpt_set_inf(struct jpt *p, int nw) -
jpt_copy(function)net/tls_crypto.c:875static void jpt_copy(struct jpt *d, const struct jpt *s, int nw) -
jpt_cswap(function)net/tls_crypto.c:885static 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:896static 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:936static 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:980static 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:1007static 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:1032static 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:1076static struct ec_curve *ec_curve_by_id(int curve) -
ec_boot(function)net/tls_crypto.c:1080static void ec_boot(void) -
p256_scalar_mult(function)net/tls_crypto.c:1088int p256_scalar_mult(const unsigned char scalar[32], const unsigned char qx[... -
p384_scalar_mult(function)net/tls_crypto.c:1101int p384_scalar_mult(const unsigned char scalar[48], const unsigned char qx[... -
p256_ecdh(function)net/tls_crypto.c:1114int p256_ecdh(const unsigned char priv[32], const unsigned char peer_x[32], const u... -
der_parse_sig(function)net/tls_crypto.c:1129static int der_parse_sig(const unsigned char *sig, unsigned sig_len, con... -
ecdsa_verify(function)net/tls_crypto.c:1163int ecdsa_verify(int curve, const unsigned char pub_x[], const unsigned char pub_y[], ... -
rsa_verify_digestinfo(function)net/tls_crypto.c:1261static 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:1285static 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:1326int rsa_pkcs1_verify_sha256(const unsigned char *n, unsigned n_len, c... -
rsa_pkcs1_verify_sha384(function)net/tls_crypto.c:1340int rsa_pkcs1_verify_sha384(const unsigned char *n, unsigned n_len, c... -
sha384_rotr(function)net/tls_crypto.c:1386static unsigned long long sha384_rotr(unsigned long long x, unsigned n) -
sha384_raw(function)net/tls_crypto.c:1390static void sha384_raw(const unsigned char *data, unsigned len, unsigned c... -
sha384(function)net/tls_crypto.c:1506void sha384(const unsigned char *data, unsigned len, unsigned char out[48]) -
p256_point_valid(function)net/tls_crypto.c:1512int p256_point_valid(const unsigned char x[32], const unsigned char y[32]) -
p256_pub(function)net/tls_crypto.c:1520int p256_pub(const unsigned char priv[32], unsigned char x[32], unsigned char y[32]) -
p256_scalar_valid(function)net/tls_crypto.c:1539int p256_scalar_valid(const unsigned char scalar[32])
Depends on: headers/tls.h, headers/tls_port.h
-
oid_eq(function)net/tls_x509.c:36static int oid_eq(const unsigned char *bytes, unsigned len, const unsigned char... -
der_next(function)net/tls_x509.c:51static 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:82static 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:94static long days_from_civil(int y, int m, int d) -
der_time_to_days(function)net/tls_x509.c:106static 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:135static 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:178static void san_add(struct x509_sans *out, const unsigned char *v, unsigned len) -
san_parse(function)net/tls_x509.c:186static 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:203static 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:279static int cert_parse(const unsigned char *der, unsigned len, struct x509_c... -
ascii_lower(function)net/tls_x509.c:392static int ascii_lower(int c) -
host_match_exact(function)net/tls_x509.c:397static 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:410static 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:431static int host_matches(const char *host, const struct x509_cert *leaf) -
tls_x509_parse_pubkey(function)net/tls_x509.c:452int tls_x509_parse_pubkey(const unsigned char *der, unsigned len, struc... -
pubkey_equal(function)net/tls_x509.c:468static 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:479static 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:521int tls_x509_verify_chain(const unsigned char *chain, unsigned chain_len, ...
-
aes_rk(function)progs/asm/aes.s:3 -
aes_sb(function)progs/asm/aes.s:7 -
aes_rc(function)progs/asm/aes.s:11 -
aes_st(function)progs/asm/aes.s:15 -
aes_iv(function)progs/asm/aes.s:19 -
aes_read_all(function)progs/asm/aes.s:23 -
aes_write_all(function)progs/asm/aes.s:238 -
aes_has(function)progs/asm/aes.s:345 -
hex_val(function)progs/asm/aes.s:498 -
aes_parse_hex(function)progs/asm/aes.s:620 -
aes_gf_mul(function)progs/asm/aes.s:783 -
aes_xtime(function)progs/asm/aes.s:884 -
aes_rotl8(function)progs/asm/aes.s:933 -
aes_init_tables(function)progs/asm/aes.s:970 -
aes_key_expand(function)progs/asm/aes.s:1197 -
aes_add_round_key(function)progs/asm/aes.s:1646 -
aes_sub_bytes(function)progs/asm/aes.s:1721 -
aes_shift_rows(function)progs/asm/aes.s:1774 -
aes_mix_columns(function)progs/asm/aes.s:1993 -
aes_cipher(function)progs/asm/aes.s:2466 -
aes_iv_increment(function)progs/asm/aes.s:2565 -
aes_ctr_crypt(function)progs/asm/aes.s:2648 -
aes_hdr_put(function)progs/asm/aes.s:2791 -
aes_hdr_get(function)progs/asm/aes.s:2906 -
aes_tool_name(function)progs/asm/aes.s:3059 -
aes_run(function)progs/asm/aes.s:3077 -
main(function)progs/asm/aes.s:3807
-
main(function)progs/asm/cp.s:3
-
fwin(function)progs/asm/cvmfmt.s:3 -
fcanary(function)progs/asm/cvmfmt.s:7 -
main(function)progs/asm/cvmfmt.s:11
-
fib(function)progs/asm/fib.s:3 -
main(function)progs/asm/fib.s:61
-
tls_close(function)progs/asm/freedom.s:3 -
f_host(function)progs/asm/freedom.s:24 -
f_path(function)progs/asm/freedom.s:28 -
f_port(function)progs/asm/freedom.s:32 -
f_secure(function)progs/asm/freedom.s:36 -
f_loc(function)progs/asm/freedom.s:40 -
f_redir(function)progs/asm/freedom.s:44 -
f_status(function)progs/asm/freedom.s:48 -
f_clen(function)progs/asm/freedom.s:52 -
f_has_clen(function)progs/asm/freedom.s:56 -
f_chunked(function)progs/asm/freedom.s:60 -
f_hdr(function)progs/asm/freedom.s:64 -
f_hlen(function)progs/asm/freedom.s:68 -
f_tag(function)progs/asm/freedom.s:72 -
f_suppress(function)progs/asm/freedom.s:76 -
f_comment(function)progs/asm/freedom.s:80 -
f_cmdash(function)progs/asm/freedom.s:84 -
f_tagn(function)progs/asm/freedom.s:88 -
f_tagnlen(function)progs/asm/freedom.s:92 -
f_ent(function)progs/asm/freedom.s:96 -
f_entlen(function)progs/asm/freedom.s:100 -
f_ws(function)progs/asm/freedom.s:104 -
f_utbuf(function)progs/asm/freedom.s:108 -
f_utlen(function)progs/asm/freedom.s:112 -
f_utrem(function)progs/asm/freedom.s:116 -
f_attr_on(function)progs/asm/freedom.s:120 -
f_waitq(function)progs/asm/freedom.s:124 -
f_inval(function)progs/asm/freedom.s:128 -
f_inval2(function)progs/asm/freedom.s:132 -
f_attr(function)progs/asm/freedom.s:136 -
f_attrlen(function)progs/asm/freedom.s:140 -
f_val(function)progs/asm/freedom.s:144 -
f_vallen(function)progs/asm/freedom.s:148 -
f_id(function)progs/asm/freedom.s:152 -
f_idlen(function)progs/asm/freedom.s:156 -
f_cls(function)progs/asm/freedom.s:160 -
f_clslen(function)progs/asm/freedom.s:164 -
f_href(function)progs/asm/freedom.s:168 -
f_hreflen(function)progs/asm/freedom.s:172 -
f_rel_ss(function)progs/asm/freedom.s:176 -
f_styleattr(function)progs/asm/freedom.s:180 -
f_stylelen(function)progs/asm/freedom.s:184 -
f_dump_css(function)progs/asm/freedom.s:188 -
f_dump_dom(function)progs/asm/freedom.s:192 -
f_mode(function)progs/asm/freedom.s:196 -
f_rawcap(function)progs/asm/freedom.s:200 -
f_depth(function)progs/asm/freedom.s:204 -
f_dom(function)progs/asm/freedom.s:208 -
f_domlen(function)progs/asm/freedom.s:212 -
f_css(function)progs/asm/freedom.s:216 -
f_csslen(function)progs/asm/freedom.s:220 -
f_linkhost(function)progs/asm/freedom.s:224 -
f_linkpath(function)progs/asm/freedom.s:228 -
f_linkn(function)progs/asm/freedom.s:232 -
f_cstage(function)progs/asm/freedom.s:236 -
f_csize(function)progs/asm/freedom.s:240 -
f_crem(function)progs/asm/freedom.s:244 -
f_bdone(function)progs/asm/freedom.s:248 -
atoi(function)progs/asm/freedom.s:252 -
append(function)progs/asm/freedom.s:338 -
ci_lower(function)progs/asm/freedom.s:437 -
ci_starts(function)progs/asm/freedom.s:486 -
ci_eq(function)progs/asm/freedom.s:559 -
ci_index(function)progs/asm/freedom.s:656 -
looks_like_url(function)progs/asm/freedom.s:715 -
has_scheme(function)progs/asm/freedom.s:789 -
make_search(function)progs/asm/freedom.s:1064 -
split_url(function)progs/asm/freedom.s:1295 -
resolve_redirect(function)progs/asm/freedom.s:1810 -
put_ws(function)progs/asm/freedom.s:2333 -
put_utf(function)progs/asm/freedom.s:2379 -
put_text(function)progs/asm/freedom.s:2915 -
put_entity(function)progs/asm/freedom.s:3018 -
css_append(function)progs/asm/freedom.s:3849 -
css_line(function)progs/asm/freedom.s:3920 -
dom_append(function)progs/asm/freedom.s:3978 -
dom_space(function)progs/asm/freedom.s:4049 -
dom_nl(function)progs/asm/freedom.s:4083 -
record_attr(function)progs/asm/freedom.s:4117 -
is_void_tag(function)progs/asm/freedom.s:4449 -
classify_tag(function)progs/asm/freedom.s:4757 -
body_byte(function)progs/asm/freedom.s:5961 -
head_line(function)progs/asm/freedom.s:7203 -
parse_head(function)progs/asm/freedom.s:7460 -
recv_body(function)progs/asm/freedom.s:7676 -
send_all(function)progs/asm/freedom.s:7736 -
fetch(function)progs/asm/freedom.s:7810 -
fetch_css(function)progs/asm/freedom.s:9293 -
print_css_dump(function)progs/asm/freedom.s:10112 -
print_dom_dump(function)progs/asm/freedom.s:10212 -
main(function)progs/asm/freedom.s:10291
-
atoi(function)progs/asm/http.s:3 -
main(function)progs/asm/http.s:89
Next: API_p10.md
Generated offline by readmenator from commit cd87980b5eb5. Edits here are overwritten by readmenator . --rebuild.
Start
Wiki
- community_0_headers_kernel
- community_10_orphans
- community_1_progs_doomgeneric_d_englsh
- community_2_progs_src
- community_3_progs_doomgeneric_p_spec
- community_4_tools_tls_crypto
- community_5_headers_vga_fb
- community_6_progs_doomgeneric_net_defs
- community_7_headers_batch
- community_8_headers_tick
- community_9_tools_doom_pwad
- concepts
- queries
- REPORT
Agent Docs
- API
- API_p10
- API_p11
- API_p12
- API_p13
- API_p14
- API_p15
- API_p16
- API_p17
- API_p18
- API_p19
- API_p2
- API_p20
- API_p21
- API_p3
- API_p4
- API_p5
- API_p6
- API_p7
- API_p8
- API_p9
- ARCHITECTURE
- ARCHITECTURE_p2
- ARCHITECTURE_p3
- ARCHITECTURE_p4
- CONCEPTS
- GOTCHAS
- INDEX
- INDEX_p2
- KB_asm
- KB_boot
- KB_doomgeneric
- KB_doomgeneric_p10
- KB_doomgeneric_p11
- KB_doomgeneric_p12
- KB_doomgeneric_p2
- KB_doomgeneric_p3
- KB_doomgeneric_p4
- KB_doomgeneric_p5
- KB_doomgeneric_p6
- KB_doomgeneric_p7
- KB_doomgeneric_p8
- KB_doomgeneric_p9
- KB_drivers
- KB_drivers_p2
- KB_file
- KB_freedomui
- KB_fs
- KB_headers
- KB_headers_arch_x86
- KB_headers_drivers
- KB_headers_kernel
- KB_headers_p2
- KB_headers_p3
- KB_headers_p4
- KB_headers_p5
- KB_headers_p6
- KB_kernel
- KB_kernel_p2
- KB_kernel_p3
- KB_kernel_p4
- KB_lib
- KB_lisp
- KB_lua
- KB_mcp
- KB_minios
- KB_misc
- KB_misc_p2
- KB_misc_p3
- KB_mm
- KB_net
- KB_nuklear
- KB_pokemon
- KB_progs
- KB_quake2generic
- KB_root
- KB_src
- KB_src_p2
- KB_src_p3
- KB_tests
- KB_tests_p2
- KB_tls_u
- KB_tools
- KB_tools_p2
- KB_wl
- KB_x86
- MEMORY
- SECURITY
- SYMBOLS
- SYMBOLS_p10
- SYMBOLS_p11
- SYMBOLS_p12
- SYMBOLS_p13
- SYMBOLS_p14
- SYMBOLS_p15
- SYMBOLS_p16
- SYMBOLS_p17
- SYMBOLS_p18
- SYMBOLS_p19
- SYMBOLS_p2
- SYMBOLS_p20
- SYMBOLS_p21
- SYMBOLS_p22
- SYMBOLS_p23
- SYMBOLS_p24
- SYMBOLS_p25
- SYMBOLS_p26
- SYMBOLS_p27
- SYMBOLS_p3
- SYMBOLS_p4
- SYMBOLS_p5
- SYMBOLS_p6
- SYMBOLS_p7
- SYMBOLS_p8
- SYMBOLS_p9
Recipes