kid 1a257fae7f feat: M4a host key 校验(TOFU pin,关闭 MITM 敞口)
- TXCore/SSH: SSHWire(string/mpint 编码)、ECDSAConv(DER→SSH 签名/P256 blob)、
  HostKey(opensshFingerprint/evaluate/HostTriple/KnownHostsStore),+10 单测(含真实指纹向量、高位 DER)
- TXTransport: SSHConfig.hostKeyVerifier 闭包 + SSHError.hostKeyMismatch;
  SSHSession 握手后 libssh2_session_hostkey 取 blob 交 verifier,拒绝则断开抛错
- app: 文件后端 KnownHostsStore(未签名 app 无 keychain 权限 SecItem -34018,host key 是
  公钥非机密,沙盒文件对 TOFU 足够)+ TOFU verifier + firstUse 横幅 + mismatch alert(信任/取消)
- 验证(192.168.9.199):首次信任 pin+接受连上;假 pin→不符→断开+告警,本次指纹与 ssh-keygen 逐字符一致

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-24 18:06:39 +08:00

terminalX

原生苹果生态终端运维 / vibe coding 工具。平台优先级:iPadOS > iOS > macOS(Apple Silicon)

核心选型:libghostty(终端引擎) · mosh · Tailscale (tsnet 用户态) · tmux control mode hook

设计与决策见 docs/(若缺失,参见会话记忆 / 架构蓝图)。当前处于 M0(骨架 + 引擎 + libssh2 直连),走 SSH-first 路线。

仓库结构

packages/      纯 Swift SPM 包(源码构建,依赖只向下)
  TXCore       零依赖:模型 / 状态机 / 协议 / 纯算法(含 tmux control-mode 解析器)
  TXTransport  SSH(libssh2) 引导 · mosh 驱动 · UDP relay · 连接编排        [M1+]
  TXTailnet    tsnet 多节点 · DialerRouter · fd 桥                          [M1+]
  TXTerminal   GhosttyKit 包装Metal 渲染 · 键盘 · IME                     [M0]
  TXSecurity   Keychain / Secure Enclave / known_hosts                      [M4]
  TXPTY        本地 PTY仅 macOS                                         [M4]
  TXUI         SwiftUI 界面层                                               [M0+]
apps/          Xcode app targetsXcodeGen 生成iOS/iPadOS 合一 + macOS 独立)
vendor/        非 Swift 语言源zig/go/c++CI 产出 xcframework            [M1+]
artifacts/     预编译 xcframework 落地gitignore

开发

# M0纯逻辑包命令行即可测无需 Xcode 工程
cd packages/TXCore && swift test

工具链要求

  • Xcode 26+ / Swift 6.xM0
  • Go + gomobileM1tsnet
  • CMake + Ninja + zigM1/M2vendor 构建)
Description
No description provided
Readme 68 MiB
Languages
C 84.7%
Swift 14.9%
Objective-C 0.4%