豫言 / 安全外壳桥接验证 @ 0.1.0

验证 SSH channel 与原生 PTY 的双向字节转交和窗口约束。

源码浏览已生成;不能解析的文件以纯文本展示,不表示通过类型检查。

包说明.汉语.md

# 安全外壳桥接验证

无 PTY 标准流验证启动真实 `/bin/sh`,分别取得 stdout 的 `OUT` 和 stderr 的 `ERR`,检查它们编码为普通数据与扩展数据,并共同把远端窗口从 10 减至 4;随后分别确认两路 EOF 和子进程退出。另一条真实 `/bin/cat` 路径验证 stdin 待写冲刷返回实际写入量与剩余字节,并将原样输出封成通道数据。

微窗口测试让子进程输出 `ABC`:2 字节窗口先发送 `AB`,耗尽时不读取,窗口增加后再发送 `C`。

使用原生 PTY 验证 SSH channel 数据入站转交、出站按窗口裁剪和窗口耗尽后的暂停。模拟写入失败时验证待写字节完整保留;在原始模式下填满 PTY 输入缓冲,验证等待可写超时后累计写入数与保留尾部的长度之和等于原输入长度。用主从端分别验证多路等待的可读、可写、单路关注及非法关注位;加密缓冲测试验证半包不推进 IV、两帧粘连时逐帧解密并保留余字。另启动 `/usr/bin/tty`,确认其控制终端输出经过 PTY 封装成可解析的 CHANNEL_DATA。验证不依赖网络连接或后台服务端。

会话传输控制分类测试覆盖合法 `IGNORE`、`UNIMPLEMENTED`、`DEBUG`、`DISCONNECT`,并拒绝带尾随字节的控制报文与空载荷;普通通道报文继续交给通道处理。

包说明.文言.md

# 安全外壳桥接验证

无 PTY 标准流之验,起真 `/bin/sh`,别取 stdout 之 `OUT` 与 stderr 之 `ERR`,核二者各封常数据、扩展数据,且同耗彼窗,自十减至四;继别验二出 EOF 及子进程退。另以真 `/bin/cat` 验 stdin 待写冲刷之实写数、余尾,及原字封通道数据。

微窗之验,子进程吐 `ABC`;彼窗二字先送 `AB`,窗尽不读,增窗后复送 `C`。

以原生 PTY 验 SSH channel 数据入端转交、出端依窗裁读及窗尽暂停。模拟写败,验待写原字俱留;又置从端原始模式,使满缓冲而候可写逾时,验已写数与余尾长度之和恰为原文长度。以主从端各验多路等待之可读、可写、单路关注及非法关注位;加密缓冲试半报不进 IV,二报相连则逐报解之而存余字。另启 `/usr/bin/tty`,验其控制终端之出经 PTY 封为可析之 CHANNEL_DATA。验证不赖网络连接或后台服务者。

会话传输控制分类之验,核合法 `IGNORE`、`UNIMPLEMENTED`、`DEBUG`、`DISCONNECT`;尾有余字之坏报与空载物皆拒,常通道报则交通道术。