xrtSshReaderInit
初始化借用输入的 SSH reader;空输入允许 Data 为 NULL。
| 参数 | 说明 |
|---|---|
| xsshreader* pReader | 读取器 |
| xbytesview Source | Source 参数 |
示例已编译验证
sshreaderinit obj; xrtSshReaderInit(&obj, pReader, Source);
xrtSshWriterInit
初始化借用输出缓冲的 SSH writer;零容量允许 Data 为 NULL。
| 参数 | 说明 |
|---|---|
| xsshwriter* pWriter | 写入器 |
| void* pData | 用户数据 |
| size_t iCapacity | 容量 |
示例已编译验证
sshwriterinit obj; xrtSshWriterInit(&obj, pWriter, iCapacity);
xrtSshReaderRemaining
返回 reader 尚未消费的字节数;无效状态返回零。
| 参数 | 说明 |
|---|---|
| const xsshreader* pReader | 读取器 |
示例已编译验证
/* 返回 reader 尚未消费的字节数;无效状态返回零。 */ result = xrtSshReaderRemaining(pReader);
xrtSshWriterRemaining
返回 writer 尚可写入的字节数;无效状态返回零。
| 参数 | 说明 |
|---|---|
| const xsshwriter* pWriter | 写入器 |
示例已编译验证
/* 返回 writer 尚可写入的字节数;无效状态返回零。 */ result = xrtSshWriterRemaining(pWriter);
xrtSshWriterReserve
校验 writer 并确认后续写入可一次完成,不改变 writer 状态。
| 参数 | 说明 |
|---|---|
| const xsshwriter* pWriter | 写入器 |
| size_t iSize | 字节数 |
示例已编译验证
/* 校验 writer 并确认后续写入可一次完成,不改变 writer 状态。 */ result = xrtSshWriterReserve(pWriter, iSize);
xrtSshWriterReserveInputs
校验整段输出与多个借用输入不重叠,不改变 writer 状态。
| 参数 | 说明 |
|---|---|
| const xsshwriter* pWriter | 写入器 |
| size_t iSize | 字节数 |
| const xbytesview* pInputs | Inuts 参数 |
| size_t iInputCount | InutCount 参数 |
示例已编译验证
/* 校验整段输出与多个借用输入不重叠,不改变 writer 状态。 */ result = xrtSshWriterReserveInputs(pWriter, iSize, pInputs, iInputCount);
xrtSshReadByte
读取一个 SSH byte,输入不足返回 XSSH_NEED_MORE。
| 参数 | 说明 |
|---|---|
| xsshreader* pReader | 读取器 |
| uint8* pValue | 值 |
示例已编译验证
/* 读取一个 SSH byte,输入不足返回 XSSH_NEED_MORE。 */ result = xrtSshReadByte(pReader, pValue);
xrtSshReadBool
读取一个 SSH boolean;零为 false,任意非零值为 true。
| 参数 | 说明 |
|---|---|
| xsshreader* pReader | 读取器 |
| bool* pValue | 值 |
示例已编译验证
/* 读取一个 SSH boolean;零为 false,任意非零值为 true。 */ result = xrtSshReadBool(pReader, pValue);
xrtSshReadU32
读取一个网络字节序 uint32。
| 参数 | 说明 |
|---|---|
| xsshreader* pReader | 读取器 |
| uint32* pValue | 值 |
示例已编译验证
/* 读取一个网络字节序 uint32。 */ result = xrtSshReadU32(pReader, pValue);
xrtSshReadU64
读取一个网络字节序 uint64。
| 参数 | 说明 |
|---|---|
| xsshreader* pReader | 读取器 |
| uint64* pValue | 值 |
示例已编译验证
/* 读取一个网络字节序 uint64。 */ result = xrtSshReadU64(pReader, pValue);
xrtSshReadString
读取 uint32 长度前缀的 SSH string,并返回借用视图。
| 参数 | 说明 |
|---|---|
| xsshreader* pReader | 读取器 |
| xbytesview* pValue | 值 |
示例已编译验证
/* 读取 uint32 长度前缀的 SSH string,并返回借用视图。 */ result = xrtSshReadString(pReader, pValue);
xrtSshReadBytes
读取指定数量的原始字节,并返回借用视图。
| 参数 | 说明 |
|---|---|
| xsshreader* pReader | 读取器 |
| size_t iSize | 字节数 |
| xbytesview* pValue | 值 |
示例已编译验证
/* 读取指定数量的原始字节,并返回借用视图。 */ result = xrtSshReadBytes(pReader, iSize, pValue);
xrtSshWriteByte
写入一个 SSH byte。
| 参数 | 说明 |
|---|---|
| xsshwriter* pWriter | 写入器 |
| uint8 iValue | 增量值 |
示例已编译验证
/* 写入一个 SSH byte。 */ result = xrtSshWriteByte(pWriter, iValue);
xrtSshWriteBool
写入规范的单字节 SSH boolean。
| 参数 | 说明 |
|---|---|
| xsshwriter* pWriter | 写入器 |
| bool bValue | 布尔值 |
示例已编译验证
/* 写入规范的单字节 SSH boolean。 */ result = xrtSshWriteBool(pWriter, bValue);
xrtSshWriteU32
以网络字节序写入 uint32。
| 参数 | 说明 |
|---|---|
| xsshwriter* pWriter | 写入器 |
| uint32 iValue | 增量值 |
示例已编译验证
/* 以网络字节序写入 uint32。 */ result = xrtSshWriteU32(pWriter, iValue);
xrtSshWriteU64
以网络字节序写入 uint64。
| 参数 | 说明 |
|---|---|
| xsshwriter* pWriter | 写入器 |
| uint64 iValue | 增量值 |
示例已编译验证
/* 以网络字节序写入 uint64。 */ result = xrtSshWriteU64(pWriter, iValue);
xrtSshWriteString
写入 uint32 长度前缀的 SSH string。
| 参数 | 说明 |
|---|---|
| xsshwriter* pWriter | 写入器 |
| xbytesview Value | 值 |
示例已编译验证
/* 写入 uint32 长度前缀的 SSH string。 */ result = xrtSshWriteString(pWriter, Value);
xrtSshWriteBytes
不添加长度前缀,直接写入原始字节。
| 参数 | 说明 |
|---|---|
| xsshwriter* pWriter | 写入器 |
| xbytesview Value | 值 |
示例已编译验证
/* 不添加长度前缀,直接写入原始字节。 */ result = xrtSshWriteBytes(pWriter, Value);
xrtSshWriteNameList
校验并写入一个 SSH name-list string。
| 参数 | 说明 |
|---|---|
| xsshwriter* pWriter | 写入器 |
| xstrview List | Lst 参数 |
示例已编译验证
/* 校验并写入一个 SSH name-list string。 */ result = xrtSshWriteNameList(pWriter, List);
xrtSshNameValid
校验一个非空、可打印 US-ASCII 且不含逗号的 SSH 名称。
| 参数 | 说明 |
|---|---|
| xstrview Name | 名称(xstrview) |
示例已编译验证
/* 校验一个非空、可打印 US-ASCII 且不含逗号的 SSH 名称。 */ result = xrtSshNameValid(Name);
xrtSshLanguageValid
校验允许为空且不含控制字符的 ASCII language tag。
| 参数 | 说明 |
|---|---|
| xstrview Language | Language 参数 |
示例已编译验证
/* 校验允许为空且不含控制字符的 ASCII language tag。 */ result = xrtSshLanguageValid(Language);
xrtSshNameListValid
校验 SSH name-list 的非空项与可打印 US-ASCII 约束。
| 参数 | 说明 |
|---|---|
| xstrview List | Lst 参数 |
示例已编译验证
/* 校验 SSH name-list 的非空项与可打印 US-ASCII 约束。 */ result = xrtSshNameListValid(List);
xrtSshNameListContains
判断有效 name-list 是否包含一个完整名称。
| 参数 | 说明 |
|---|---|
| xstrview List | Lst 参数 |
| xstrview Name | 名称(xstrview) |
示例已编译验证
/* 判断有效 name-list 是否包含一个完整名称。 */ result = xrtSshNameListContains(List, Name);
xrtSshNameListHasDuplicate
判断有效 name-list 是否存在完全相同的重复项。
| 参数 | 说明 |
|---|---|
| xstrview List | Lst 参数 |
示例已编译验证
/* 判断有效 name-list 是否存在完全相同的重复项。 */ result = xrtSshNameListHasDuplicate(List);
xrtSshNameListFirstMatch
按 Preferred 的顺序返回 Available 中首个匹配名称的借用视图。
| 参数 | 说明 |
|---|---|
| xstrview Preferred | Preferred 参数 |
| xstrview Available | 可用性位集 |
| xstrview* pMatch | 出:匹配详情 |
示例已编译验证
/* 按 Preferred 的顺序返回 Available 中首个匹配名称的借用视图。 */ result = xrtSshNameListFirstMatch(Preferred, Available, pMatch);
xrtSshReadMpint
读取规范的非负 SSH mpint,返回原始二进制补码字节视图。
| 参数 | 说明 |
|---|---|
| xsshreader* pReader | 读取器 |
| xbytesview* pValue | 值 |
示例已编译验证
/* 读取规范的非负 SSH mpint,返回原始二进制补码字节视图。 */ result = xrtSshReadMpint(pReader, pValue);
xrtSshWriteMpint
将大端无符号 magnitude 规范化并写成非负 SSH mpint。
| 参数 | 说明 |
|---|---|
| xsshwriter* pWriter | 写入器 |
| xbytesview Magnitude | Magntude 参数 |
示例已编译验证
/* 将大端无符号 magnitude 规范化并写成非负 SSH mpint。 */ result = xrtSshWriteMpint(pWriter, Magnitude);
xrtSshReadSignedMpint
读取规范的有符号 SSH mpint,并报告其符号。
| 参数 | 说明 |
|---|---|
| xsshreader* pReader | 读取器 |
| xbytesview* pValue | 值 |
| bool* pNegative | Negatve 参数 |
示例已编译验证
/* 读取规范的有符号 SSH mpint,并报告其符号。 */ result = xrtSshReadSignedMpint(pReader, pValue, pNegative);
xrtSshWriteSignedMpint
将大端 magnitude 和符号规范化并写成 SSH mpint。
| 参数 | 说明 |
|---|---|
| xsshwriter* pWriter | 写入器 |
| xbytesview Magnitude | Magntude 参数 |
| bool bNegative | bNegatve 参数 |
示例已编译验证
/* 将大端 magnitude 和符号规范化并写成 SSH mpint。 */ result = xrtSshWriteSignedMpint(pWriter, Magnitude, bNegative);
xrtSshBannerRead
从增量输入读取 SSH-2.0/SSH-1.99 identification,可跳过服务端前置行。
| 参数 | 说明 |
|---|---|
| xstrview Data | 数据内容 |
| xstrview* pBanner | 横幅 |
| size_t* pConsumed | Consumed 参数 |
示例已编译验证
/* 从增量输入读取 SSH-2.0/SSH-1.99 identification,可跳过服务端前置行。 */ result = xrtSshBannerRead(Data, pBanner, pConsumed);
xrtSshBannerWrite
严格校验并写入本端 SSH-2.0 identification 与 CRLF。
| 参数 | 说明 |
|---|---|
| xsshwriter* pWriter | 写入器 |
| xstrview Banner | 服务端横幅文本 |
示例已编译验证
/* 严格校验并写入本端 SSH-2.0 identification 与 CRLF。 */ result = xrtSshBannerWrite(pWriter, Banner);