初始提交:terminalX 可运行态(M0/M1/M1.5 已真机验证)
- M0: libghostty SSH 终端(渲染/输入/连接)+ 白屏修复(OutputGate) + 会话状态机/自动重连 - M1: tsnet 用户态组网 + SSH-over-tsnet(fd 桥),shell 级真机验证;R5(Go+gvisor+C+++Swift 同进程) retire - M1.5: tmux -CC 原生 tab(MVP) - 结构: packages/(TXCore·TXTransport), apps/TerminalX, vendor/(libghostty-spm/libssh2/mbedtls/tsnet-bridge), artifacts/ - 文档: CLAUDE.md + docs/HANDOFF.md(新会话入口) - 环境: 认证代理→依赖 vendor 本地化;Go 在 ~/.local/go;仅模拟器/未签名 - 待续: M2 mosh, tmux 多 pane, M4 安全(host key/SE) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
86
vendor/mbedtls/tests/suites/test_suite_common.function
vendored
Normal file
86
vendor/mbedtls/tests/suites/test_suite_common.function
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include "common.h"
|
||||
|
||||
static void fill_arrays(unsigned char *a,
|
||||
unsigned char *b,
|
||||
unsigned char *r1,
|
||||
unsigned char *r2,
|
||||
size_t n)
|
||||
{
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
a[i] = (unsigned char) i * 3;
|
||||
b[i] = (unsigned char) i * 3 + 1;
|
||||
r1[i] = (unsigned char) i * 3 + 2;
|
||||
r2[i] = r1[i];
|
||||
}
|
||||
}
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_xor(int len)
|
||||
{
|
||||
size_t n = (size_t) len;
|
||||
unsigned char *a = NULL, *b = NULL, *r1 = NULL, *r2 = NULL;
|
||||
TEST_CALLOC(a, n + 1);
|
||||
TEST_CALLOC(b, n + 1);
|
||||
TEST_CALLOC(r1, n + 1);
|
||||
TEST_CALLOC(r2, n + 1);
|
||||
|
||||
/* Test non-overlapping */
|
||||
fill_arrays(a, b, r1, r2, n);
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
r1[i] = a[i] ^ b[i];
|
||||
}
|
||||
mbedtls_xor(r2, a, b, n);
|
||||
TEST_MEMORY_COMPARE(r1, n, r2, n);
|
||||
|
||||
/* Test r == a */
|
||||
fill_arrays(a, b, r1, r2, n);
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
r1[i] = r1[i] ^ b[i];
|
||||
}
|
||||
mbedtls_xor(r2, r2, b, n);
|
||||
TEST_MEMORY_COMPARE(r1, n, r2, n);
|
||||
|
||||
/* Test r == b */
|
||||
fill_arrays(a, b, r1, r2, n);
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
r1[i] = a[i] ^ r1[i];
|
||||
}
|
||||
mbedtls_xor(r2, a, r2, n);
|
||||
TEST_MEMORY_COMPARE(r1, n, r2, n);
|
||||
|
||||
/* Test a == b */
|
||||
fill_arrays(a, b, r1, r2, n);
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
r1[i] = a[i] ^ a[i];
|
||||
}
|
||||
mbedtls_xor(r2, a, a, n);
|
||||
TEST_MEMORY_COMPARE(r1, n, r2, n);
|
||||
|
||||
/* Test a == b == r */
|
||||
fill_arrays(a, b, r1, r2, n);
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
r1[i] = r1[i] ^ r1[i];
|
||||
}
|
||||
mbedtls_xor(r2, r2, r2, n);
|
||||
TEST_MEMORY_COMPARE(r1, n, r2, n);
|
||||
|
||||
/* Test non-word-aligned buffers, for all combinations of alignedness */
|
||||
for (int i = 0; i < 7; i++) {
|
||||
int r_off = i & 1, a_off = (i & 2) >> 1, b_off = (i & 4) >> 2;
|
||||
fill_arrays(a, b, r1, r2, n + 1);
|
||||
|
||||
for (size_t j = 0; j < n; j++) {
|
||||
r1[j + r_off] = a[j + a_off] ^ b[j + b_off];
|
||||
}
|
||||
mbedtls_xor(r2 + r_off, a + a_off, b + b_off, n);
|
||||
TEST_MEMORY_COMPARE(r1 + r_off, n, r2 + r_off, n);
|
||||
}
|
||||
exit:
|
||||
mbedtls_free(a);
|
||||
mbedtls_free(b);
|
||||
mbedtls_free(r1);
|
||||
mbedtls_free(r2);
|
||||
}
|
||||
/* END_CASE */
|
||||
Reference in New Issue
Block a user