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.CVoid | t.CPtr` 表达(与 vqt6 一致),生成 i8* # 指针参数,可被 ASan 插桩;纯 `t.CPtr` 会生成 opaque struct 参数, # opt -passes=asan 会报 invalid type for function argument。 # ============================================================ # ---- 基础上下文 ---- OsslLibCtxPtr: t.CTypedef = t.CVoid | t.CPtr # OSSL_LIB_CTX* EnginePtr: t.CTypedef = t.CVoid | t.CPtr # ENGINE* OpensslInitSettingsPtr: t.CTypedef = t.CVoid | t.CPtr # OPENSSL_INIT_SETTINGS* # ---- BIO(内存/文件/Socket/Connect)---- BioPtr: t.CTypedef = t.CVoid | t.CPtr # BIO* BioMethodPtr: t.CTypedef = t.CVoid | t.CPtr # BIO_METHOD* BioAddrPtr: t.CTypedef = t.CVoid | t.CPtr # BIO_ADDR* BioAddrInfoPtr: t.CTypedef = t.CVoid | t.CPtr # BIO_ADDRINFO* # ---- EVP(摘要/对称/非对称)---- EvpMdPtr: t.CTypedef = t.CVoid | t.CPtr # EVP_MD* EvpMdCtxPtr: t.CTypedef = t.CVoid | t.CPtr # EVP_MD_CTX* EvpCipherPtr: t.CTypedef = t.CVoid | t.CPtr # EVP_CIPHER* EvpCipherCtxPtr: t.CTypedef = t.CVoid | t.CPtr # EVP_CIPHER_CTX* EvpPkeyPtr: t.CTypedef = t.CVoid | t.CPtr # EVP_PKEY* EvpPkeyCtxPtr: t.CTypedef = t.CVoid | t.CPtr # EVP_PKEY_CTX* EvpEncodeCtxPtr: t.CTypedef = t.CVoid | t.CPtr # EVP_ENCODE_CTX* HmacCtxPtr: t.CTypedef = t.CVoid | t.CPtr # HMAC_CTX* # ---- X509 / 证书 ---- X509Ptr: t.CTypedef = t.CVoid | t.CPtr # X509* X509NamePtr: t.CTypedef = t.CVoid | t.CPtr # X509_NAME* X509NameEntryPtr: t.CTypedef = t.CVoid | t.CPtr # X509_NAME_ENTRY* X509CrlPtr: t.CTypedef = t.CVoid | t.CPtr # X509_CRL* X509ReqPtr: t.CTypedef = t.CVoid | t.CPtr # X509_REQ* X509ExtensionPtr: t.CTypedef = t.CVoid | t.CPtr # X509_EXTENSION* X509StorePtr: t.CTypedef = t.CVoid | t.CPtr # X509_STORE* X509StoreCtxPtr: t.CTypedef = t.CVoid | t.CPtr # X509_STORE_CTX* X509InfoPtr: t.CTypedef = t.CVoid | t.CPtr # X509_INFO* X509VerifyParamPtr: t.CTypedef = t.CVoid | t.CPtr # X509_VERIFY_PARAM* # ---- ASN.1 ---- Asn1ObjectPtr: t.CTypedef = t.CVoid | t.CPtr # ASN1_OBJECT* Asn1StringPtr: t.CTypedef = t.CVoid | t.CPtr # ASN1_STRING* Asn1IntegerPtr: t.CTypedef = t.CVoid | t.CPtr # ASN1_INTEGER* Asn1TimePtr: t.CTypedef = t.CVoid | t.CPtr # ASN1_TIME* Asn1OctetStringPtr: t.CTypedef = t.CVoid | t.CPtr # ASN1_OCTET_STRING* Asn1BitStringPtr: t.CTypedef = t.CVoid | t.CPtr # ASN1_BIT_STRING* GeneralNamesPtr: t.CTypedef = t.CVoid | t.CPtr # GENERAL_NAMES* GeneralNamePtr: t.CTypedef = t.CVoid | t.CPtr # GENERAL_NAME* # ---- SSL/TLS ---- SslPtr: t.CTypedef = t.CVoid | t.CPtr # SSL* SslCtxPtr: t.CTypedef = t.CVoid | t.CPtr # SSL_CTX* SslMethodPtr: t.CTypedef = t.CVoid | t.CPtr # SSL_METHOD* SslSessionPtr: t.CTypedef = t.CVoid | t.CPtr # SSL_SESSION* SslCipherPtr: t.CTypedef = t.CVoid | t.CPtr # SSL_CIPHER* # ---- BIGNUM ---- BnPtr: t.CTypedef = t.CVoid | t.CPtr # BIGNUM* BnCtxPtr: t.CTypedef = t.CVoid | t.CPtr # BN_CTX*