yuanyuanxiang and deepseek-v4-pro
ca0d7626d2
Feat: One-way TLS transport for the device port
...
Add optional one-way TLS on the device port (6543), enabled per client via a
pinned trust anchor, so new clients encrypt their transport while legacy
plaintext clients keep working unchanged.
Server (server/go): sniff each accepted connection and wrap TLS peers
(ClientHello 0x16 0x03 + handshake type 0x01) in crypto/tls with MinVersion
TLS 1.2; everything else stays on the plaintext path. TLS is enabled only when
both YAMA_TLS_CERT and YAMA_TLS_KEY are set, and a cert/key load failure fails
startup loudly rather than silently serving plaintext.
Client (client/, Windows): Schannel one-way TLS. When the trust anchor is
present — registry value Software\<exehash>\settings\tls_cert (REG_SZ holding
the PEM), with fallback to settings.ini [settings] tls_cert or yama-ca.pem
beside the exe — every outbound connection (main + sub-connections) completes
a TLS 1.2 handshake before the app protocol and is strictly pinned to that
anchor via a chain engine with hExclusiveRoot; any handshake/cert failure is
fail-closed (no plaintext downgrade). Send uses EncryptMessage; Recv uses
DecryptMessage and reads plaintext from the stream-mode DATA segment (bufs[1])
rather than the record header.
Co-Authored-By: deepseek-v4-pro
2026-10-14 21:10:21 +02:00
..
2026-04-19 22:55:21 +02:00
2026-10-05 10:09:26 +02:00
2026-06-05 00:05:13 +02:00
2026-04-19 22:55:21 +02:00
2026-10-05 10:41:04 +02:00
2026-08-15 11:09:14 +02:00
2026-08-15 11:09:14 +02:00
2026-08-21 19:50:11 +02:00
2026-04-19 22:55:21 +02:00
2026-06-05 00:05:13 +02:00
2026-06-05 00:05:13 +02:00
2026-06-06 13:02:29 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-10-13 17:05:37 +02:00
2026-04-19 22:55:21 +02:00
2026-05-30 00:12:38 +02:00
2026-05-30 00:12:38 +02:00
2026-06-15 19:14:49 +02:00
2026-05-30 00:12:38 +02:00
2026-10-10 14:39:34 +02:00
2026-10-04 19:55:29 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-10-14 21:10:21 +02:00
2026-10-14 21:10:21 +02:00
2026-04-19 22:55:21 +02:00
2026-09-11 16:28:37 +02:00
2026-09-11 16:28:37 +02:00
2026-07-13 19:02:25 +02:00
2026-07-13 19:02:25 +02:00
2026-04-19 22:55:21 +02:00
2026-10-05 10:52:58 +02:00
2026-10-05 10:52:58 +02:00
2026-10-04 18:23:06 +02:00
2026-10-04 18:23:06 +02:00
2026-06-05 00:05:13 +02:00
2026-06-05 00:05:13 +02:00
2026-05-09 23:13:24 +02:00
2026-04-19 22:55:21 +02:00
2026-10-05 10:52:58 +02:00
2026-10-05 10:52:58 +02:00
2026-04-19 22:55:21 +02:00
2026-05-30 00:12:38 +02:00
2026-05-30 00:12:38 +02:00
2026-04-19 22:55:21 +02:00
2026-10-02 19:57:57 +02:00
2026-06-05 00:05:13 +02:00
2026-10-14 21:10:21 +02:00
2026-10-14 21:10:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-10-14 21:10:21 +02:00
2026-10-14 21:10:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-06-24 22:31:14 +02:00
2026-04-19 22:55:21 +02:00
2026-10-08 17:56:18 +02:00
2026-08-15 11:09:14 +02:00
2026-07-14 22:32:29 +02:00
2026-06-05 00:05:13 +02:00
2026-05-06 19:29:02 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-10-10 13:58:38 +02:00
2026-06-06 14:54:42 +02:00
2026-10-04 21:03:03 +02:00
2026-10-04 21:03:03 +02:00
2026-08-21 19:50:11 +02:00
2026-08-21 19:50:11 +02:00
2026-06-05 00:05:13 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-05-11 20:22:07 +02:00
2026-06-29 22:49:30 +02:00
2026-06-29 22:49:30 +02:00
2026-08-23 10:37:55 +02:00
2026-06-05 00:05:13 +02:00
2026-08-23 10:37:55 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-10-04 19:55:29 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-06-15 19:15:31 +02:00
2026-06-14 00:24:46 +02:00
2026-10-02 19:57:57 +02:00
2026-06-15 19:15:31 +02:00
2026-05-07 18:17:28 +02:00
2026-05-07 18:17:28 +02:00
2026-06-16 21:03:45 +02:00
2026-06-16 21:03:45 +02:00
2026-10-07 13:57:34 +02:00
2026-04-19 22:55:21 +02:00
2026-06-05 00:05:13 +02:00
2026-06-05 00:05:13 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-06-29 22:49:30 +02:00
2026-06-29 22:49:30 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-08-21 19:50:11 +02:00
2026-06-05 00:05:13 +02:00
2026-05-08 12:39:59 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-06-05 00:05:13 +02:00
2026-06-05 00:05:13 +02:00
2026-06-05 00:05:13 +02:00
2026-06-05 00:05:13 +02:00
2026-06-29 22:49:30 +02:00
2026-06-29 22:49:30 +02:00
2026-04-19 22:55:21 +02:00
2026-10-07 13:57:34 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-10-14 21:10:21 +02:00
2026-10-14 21:10:21 +02:00
2026-04-19 22:55:21 +02:00
2026-05-30 00:12:38 +02:00
2026-10-13 17:05:37 +02:00
2026-10-13 17:05:37 +02:00
2026-06-15 14:11:42 +02:00
2026-05-30 00:12:38 +02:00
2026-10-04 21:03:03 +02:00