按规范「注释只讲解作用,不掺杂历史原因,尽量英文」:把 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 顺序回归通过。
29 lines
1.3 KiB
Plaintext
29 lines
1.3 KiB
Plaintext
import t, c
|
|
from openssl.types import *
|
|
|
|
# ============================================================
|
|
# openssl/sha.vp — SHA-1 / SHA-2 一次性摘要
|
|
# 对应头文件: sha.h
|
|
#
|
|
# OpenSSL 3.x 推荐走 EVP(见 evp.vp: EVP_DigestInit_ex/Update/Final_ex),
|
|
# 这里保留传统一次性接口,方便快速算摘要。
|
|
# ============================================================
|
|
|
|
define ShaDigestLength = 20
|
|
define Sha224DigestLength = 28
|
|
define Sha256DigestLength = 32
|
|
define Sha384DigestLength = 48
|
|
define Sha512DigestLength = 64
|
|
|
|
# unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md)
|
|
extern def SHA1(d: bytes, n: sizet, md: bytes) -> bytes
|
|
# unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md)
|
|
extern def SHA224(d: bytes, n: sizet, md: bytes) -> bytes
|
|
# unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md)
|
|
extern def SHA256(d: bytes, n: sizet, md: bytes) -> bytes
|
|
# unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md)
|
|
extern def SHA384(d: bytes, n: sizet, md: bytes) -> bytes
|
|
# unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md)
|
|
extern def SHA512(d: bytes, n: sizet, md: bytes) -> bytes
|
|
# SHA-3 is provided only via EVP (EVP_sha3_256(), etc.; see evp.vp)
|