按规范「注释只讲解作用,不掺杂历史原因,尽量英文」:把 includes 下 75 个 .vp 的中文 # 注释与三引号 docstring 改写为英文,每个注释块压到 2 行以内。 保留要点:作用、约束、危险警告(不得/必须/注意)、ABI 与类型约定(如 BYTEPTR | t.CPtr = i8** 的跨模块坍缩坑)、位宽/长度约定、fail-fast 要求、内存与句柄所有权。 未动:文件头注释(规范豁免,仍是中文)、运行时中文字符串常量(printf / fatal_error / MlirFail 等用户可见消息,属代码字面量)。 验证:独立脚本比对 HEAD 与工作区的代码骨架(剥离 # 注释与三引号 docstring 后的非空行)——75 个文件逐字节一致;行尾 CRLF/LF 未被改动;全文剩余中文仅 547 行头注释、0 条行尾注释。bootstrap 三重重编 SUCCESS;全量 77/77 顺序回归通过。
70 lines
3.1 KiB
Plaintext
70 lines
3.1 KiB
Plaintext
import t, c
|
||
|
||
# ============================================================
|
||
# openssl/types.vp — OpenSSL 3.x 不透明对象句柄 typedef
|
||
#
|
||
# 对接 libcrypto / libssl(OpenSSL 3.x 导出符号)。
|
||
# 对象一律按不透明指针 (void*) 处理,生命周期由 OpenSSL 库管理
|
||
# (X509_free/SSL_free/BIO_free/CRYPTO_free 等对应释放函数)。
|
||
# 链接目标:ViperOpenSSLProject 的 project.vpj 链接 openssl_358_C
|
||
# 自编译静态库(libcrypto.a / libssl.a)。
|
||
#
|
||
# 注意:typedef 用 `t.CPtr` 表达(与 vqt6 一致),生成 i8*
|
||
# 指针参数,可被 ASan 插桩;纯 `t.CPtr` 会生成 opaque struct 参数,
|
||
# opt -passes=asan 会报 invalid type for function argument。
|
||
# ============================================================
|
||
|
||
# ---- Base contexts ----
|
||
OsslLibCtxPtr: t.CTypedef = t.CPtr # OSSL_LIB_CTX*
|
||
EnginePtr: t.CTypedef = t.CPtr # ENGINE*
|
||
OpensslInitSettingsPtr: t.CTypedef = t.CPtr # OPENSSL_INIT_SETTINGS*
|
||
|
||
# ---- BIO (memory / file / socket / connect) ----
|
||
BioPtr: t.CTypedef = t.CPtr # BIO*
|
||
BioMethodPtr: t.CTypedef = t.CPtr # BIO_METHOD*
|
||
BioAddrPtr: t.CTypedef = t.CPtr # BIO_ADDR*
|
||
BioAddrInfoPtr: t.CTypedef = t.CPtr # BIO_ADDRINFO*
|
||
|
||
# ---- EVP (digest / symmetric / asymmetric) ----
|
||
EvpMdPtr: t.CTypedef = t.CPtr # EVP_MD*
|
||
EvpMdCtxPtr: t.CTypedef = t.CPtr # EVP_MD_CTX*
|
||
EvpCipherPtr: t.CTypedef = t.CPtr # EVP_CIPHER*
|
||
EvpCipherCtxPtr: t.CTypedef = t.CPtr # EVP_CIPHER_CTX*
|
||
EvpPkeyPtr: t.CTypedef = t.CPtr # EVP_PKEY*
|
||
EvpPkeyCtxPtr: t.CTypedef = t.CPtr # EVP_PKEY_CTX*
|
||
EvpEncodeCtxPtr: t.CTypedef = t.CPtr # EVP_ENCODE_CTX*
|
||
HmacCtxPtr: t.CTypedef = t.CPtr # HMAC_CTX*
|
||
|
||
# ---- X509 / certificate ----
|
||
X509Ptr: t.CTypedef = t.CPtr # X509*
|
||
X509NamePtr: t.CTypedef = t.CPtr # X509_NAME*
|
||
X509NameEntryPtr: t.CTypedef = t.CPtr # X509_NAME_ENTRY*
|
||
X509CrlPtr: t.CTypedef = t.CPtr # X509_CRL*
|
||
X509ReqPtr: t.CTypedef = t.CPtr # X509_REQ*
|
||
X509ExtensionPtr: t.CTypedef = t.CPtr # X509_EXTENSION*
|
||
X509StorePtr: t.CTypedef = t.CPtr # X509_STORE*
|
||
X509StoreCtxPtr: t.CTypedef = t.CPtr # X509_STORE_CTX*
|
||
X509InfoPtr: t.CTypedef = t.CPtr # X509_INFO*
|
||
X509VerifyParamPtr: t.CTypedef = t.CPtr # X509_VERIFY_PARAM*
|
||
|
||
# ---- ASN.1 ----
|
||
Asn1ObjectPtr: t.CTypedef = t.CPtr # ASN1_OBJECT*
|
||
Asn1StringPtr: t.CTypedef = t.CPtr # ASN1_STRING*
|
||
Asn1IntegerPtr: t.CTypedef = t.CPtr # ASN1_INTEGER*
|
||
Asn1TimePtr: t.CTypedef = t.CPtr # ASN1_TIME*
|
||
Asn1OctetStringPtr: t.CTypedef = t.CPtr # ASN1_OCTET_STRING*
|
||
Asn1BitStringPtr: t.CTypedef = t.CPtr # ASN1_BIT_STRING*
|
||
GeneralNamesPtr: t.CTypedef = t.CPtr # GENERAL_NAMES*
|
||
GeneralNamePtr: t.CTypedef = t.CPtr # GENERAL_NAME*
|
||
|
||
# ---- SSL/TLS ----
|
||
SslPtr: t.CTypedef = t.CPtr # SSL*
|
||
SslCtxPtr: t.CTypedef = t.CPtr # SSL_CTX*
|
||
SslMethodPtr: t.CTypedef = t.CPtr # SSL_METHOD*
|
||
SslSessionPtr: t.CTypedef = t.CPtr # SSL_SESSION*
|
||
SslCipherPtr: t.CTypedef = t.CPtr # SSL_CIPHER*
|
||
|
||
# ---- BIGNUM ----
|
||
BnPtr: t.CTypedef = t.CPtr # BIGNUM*
|
||
BnCtxPtr: t.CTypedef = t.CPtr # BN_CTX*
|