xrtSshTransportTcpConfigInit
写入指定角色、默认 packet、banner 和 rekey 预算。
bool xrtSshTransportTcpConfigInit( xsshtransporttcpconfig* pConfig, xsshrole Role );
| 参数 | 说明 |
|---|---|
| xsshtransporttcpconfig* pConfig | 配置结构 |
| xsshrole Role | 本地角色 |
返回:写入指定角色、默认 packet、banner 和 rekey 预算。
示例已编译验证
sshtransporttcpconfiginit obj; xrtSshTransportTcpConfigInit(&obj, Role);
xrtSshTransportTcpInit
使用所属 Worker 的缓冲池初始化 TCP transport;不接管缓冲池。
bool xrtSshTransportTcpInit( xsshtransporttcp* pTransport, xnetbufpool* pPool, const xsshtransporttcpconfig* pConfig, uint64 iNowMs );
| 参数 | 说明 |
|---|---|
| xsshtransporttcp* pTransport | 传输对象 |
| xnetbufpool* pPool | 池 |
| const xsshtransporttcpconfig* pConfig | 配置结构 |
| uint64 iNowMs | 当前毫秒时间 |
返回:使用所属 Worker 的缓冲池初始化 TCP transport;不接管缓冲池。
示例已编译验证
sshtransporttcpinit obj; xrtSshTransportTcpInit(&obj, pTransport, pPool, iNowMs);
xrtSshTransportTcpClear
放弃未决事务、释放动态块并安全清除 cipher 状态。
void xrtSshTransportTcpClear(xsshtransporttcp* pTransport);
| 参数 | 说明 |
|---|---|
| xsshtransporttcp* pTransport | 传输对象 |
返回:放弃未决事务、释放动态块并安全清除 cipher 状态。
示例已编译验证
/* 放弃未决事务、释放动态块并安全清除 cipher 状态。 */ result = xrtSshTransportTcpClear(pTransport);
xrtSshTransportTcpCore
返回可推进 KEX、密钥、认证和连接协议的 transport core。
xsshtransportcore* xrtSshTransportTcpCore( xsshtransporttcp* pTransport );
| 参数 | 说明 |
|---|---|
| xsshtransporttcp* pTransport | 传输对象 |
返回:返回可推进 KEX、密钥、认证和连接协议的 transport core。
示例已编译验证
/* 返回可推进 KEX、密钥、认证和连接协议的 transport core。 */ result = xrtSshTransportTcpCore(pTransport);
xrtSshTransportTcpCoreConst
返回只读 transport core;无效对象返回空。
const xsshtransportcore* xrtSshTransportTcpCoreConst( const xsshtransporttcp* pTransport );
| 参数 | 说明 |
|---|---|
| const xsshtransporttcp* pTransport | 传输对象 |
返回:返回只读 transport core;无效对象返回空。
示例已编译验证
/* 返回只读 transport core;无效对象返回空。 */ result = xrtSshTransportTcpCoreConst(pTransport);
xrtSshTransportTcpIdentificationPrepare
在动态输出链中准备本端 identification,但不推进协议状态。
xsshcode xrtSshTransportTcpIdentificationPrepare( xsshtransporttcp* pTransport, xstrview Banner );
| 参数 | 说明 |
|---|---|
| xsshtransporttcp* pTransport | 传输对象 |
| xstrview Banner | 服务端横幅文本 |
返回:在动态输出链中准备本端 identification,但不推进协议状态。
示例已编译验证
/* 在动态输出链中准备本端 identification,但不推进协议状态。 */ result = xrtSshTransportTcpIdentificationPrepare(pTransport, Banner);
xrtSshTransportTcpWritePrepareWithPadding
使用调用方 padding 源在动态输出链中准备唯一 packet。
xsshcode xrtSshTransportTcpWritePrepareWithPadding( xsshtransporttcp* pTransport, xbytesview Payload, xsshpaddingproc pPadding, ptr pUserData, uint64 iNowMs );
| 参数 | 说明 |
|---|---|
| xsshtransporttcp* pTransport | 传输对象 |
| xbytesview Payload | 负载 |
| xsshpaddingproc pPadding | Paddng 参数 |
| ptr pUserData | 透传用户数据 |
| uint64 iNowMs | 当前毫秒时间 |
返回:使用调用方 padding 源在动态输出链中准备唯一 packet。
示例已编译验证
/* 使用调用方 padding 源在动态输出链中准备唯一 packet。 */ result = xrtSshTransportTcpWritePrepareWithPadding(pTransport, Payload, pPadding, pUserData, iNowMs);
xrtSshTransportTcpWriteSubmit
XRT_API xnetresult xrtSshTransportTcpWriteSubmit( xsshtransporttcp* pTransport, xnetstream* pStream, uint64 iNowMs, xsshrekeydecision* pDecision );
;
返回:XRT_API xnetresult xrtSshTransportTcpWriteSubmit( xsshtransporttcp* pTransport, xnetstream* pStream, uint64 iNowMs, xsshrekeydecision* pDecision );
示例已编译验证
/* XRT_API xnetresult xrtSshTransportTcpWriteSubmit( xsshtransporttcp* pTransport, xnetstream* pStream, uint64 iNowMs, xsshrekeydecision* pDecision ); */ result = xrtSshTransportTcpWriteSubmit();
xrtSshTransportTcpWriteAbort
放弃尚未被 TCP 接管的输出;packet sequence 与 nonce 保持不变。
xsshcode xrtSshTransportTcpWriteAbort( xsshtransporttcp* pTransport );
| 参数 | 说明 |
|---|---|
| xsshtransporttcp* pTransport | 传输对象 |
返回:放弃尚未被 TCP 接管的输出;packet sequence 与 nonce 保持不变。
示例已编译验证
/* 放弃尚未被 TCP 接管的输出;packet sequence 与 nonce 保持不变。 */ result = xrtSshTransportTcpWriteAbort(pTransport);
xrtSshTransportTcpWriteSize
返回当前待重试输出字节数;没有未决输出时返回零。
size_t xrtSshTransportTcpWriteSize( const xsshtransporttcp* pTransport );
| 参数 | 说明 |
|---|---|
| const xsshtransporttcp* pTransport | 传输对象 |
返回:返回当前待重试输出字节数;没有未决输出时返回零。
示例已编译验证
/* 返回当前待重试输出字节数;没有未决输出时返回零。 */ result = xrtSshTransportTcpWriteSize(pTransport);
xrtSshTransportTcpIdentificationReadPrepare
从分块 TCP 输入准备 peer identification,返回值借用到 ReadCommit/Abort。
xsshcode xrtSshTransportTcpIdentificationReadPrepare( xsshtransporttcp* pTransport, xnetbuf* pInput, xstrview* pBanner );
| 参数 | 说明 |
|---|---|
| xsshtransporttcp* pTransport | 传输对象 |
| xnetbuf* pInput | 输入 |
| xstrview* pBanner | 横幅 |
返回:从分块 TCP 输入准备 peer identification,返回值借用到 ReadCommit/Abort。
示例已编译验证
/* 从分块 TCP 输入准备 peer identification,返回值借用到 ReadCommit/Abort。 */ result = xrtSshTransportTcpIdentificationReadPrepare(pTransport, pInput, pBanner);
xrtSshTransportTcpReadInspect
仅复制四字节长度头,探测下一 packet 的线路和解密工作区需求。
xsshcode xrtSshTransportTcpReadInspect( const xsshtransporttcp* pTransport, const xnetbuf* pInput, xsshpacketneed* pNeed );
| 参数 | 说明 |
|---|---|
| const xsshtransporttcp* pTransport | 传输对象 |
| const xnetbuf* pInput | 输入 |
| xsshpacketneed* pNeed | Need 参数 |
返回:仅复制四字节长度头,探测下一 packet 的线路和解密工作区需求。
示例已编译验证
/* 仅复制四字节长度头,探测下一 packet 的线路和解密工作区需求。 */ result = xrtSshTransportTcpReadInspect(pTransport, pInput, pNeed);
xrtSshTransportTcpReadPrepare
按需连续化一个完整 packet,认证后返回借用 view。
xsshcode xrtSshTransportTcpReadPrepare( xsshtransporttcp* pTransport, xnetbuf* pInput, xsshpacketview* pPacket, void* pPlain, size_t iPlainCapacity, uint64 iNowMs );
| 参数 | 说明 |
|---|---|
| xsshtransporttcp* pTransport | 传输对象 |
| xnetbuf* pInput | 输入 |
| xsshpacketview* pPacket | 数据包 |
| void* pPlain | 明文 |
| size_t iPlainCapacity | PlanCaacty 参数 |
| uint64 iNowMs | 当前毫秒时间 |
返回:按需连续化一个完整 packet,认证后返回借用 view。
示例已编译验证
/* 按需连续化一个完整 packet,认证后返回借用 view。 */ result = xrtSshTransportTcpReadPrepare(pTransport, pInput, pPacket, pPlain, iPlainCapacity, iNowMs);
xrtSshTransportTcpReadCommit
提交上层已经接受的输入并从原 TCP 缓冲精确消费。
xsshcode xrtSshTransportTcpReadCommit( xsshtransporttcp* pTransport, uint64 iNowMs, xsshrekeydecision* pDecision );
| 参数 | 说明 |
|---|---|
| xsshtransporttcp* pTransport | 传输对象 |
| uint64 iNowMs | 当前毫秒时间 |
| xsshrekeydecision* pDecision | Decson 参数 |
返回:提交上层已经接受的输入并从原 TCP 缓冲精确消费。
示例已编译验证
/* 提交上层已经接受的输入并从原 TCP 缓冲精确消费。 */ result = xrtSshTransportTcpReadCommit(pTransport, iNowMs, pDecision);
xrtSshTransportTcpReadAbort
拒绝当前借用输入、消费其线路字节并关闭不可继续的 transport。
xsshcode xrtSshTransportTcpReadAbort( xsshtransporttcp* pTransport );
| 参数 | 说明 |
|---|---|
| xsshtransporttcp* pTransport | 传输对象 |
返回:拒绝当前借用输入、消费其线路字节并关闭不可继续的 transport。
示例已编译验证
/* 拒绝当前借用输入、消费其线路字节并关闭不可继续的 transport。 */ result = xrtSshTransportTcpReadAbort(pTransport);