1*8b59a3f8Sjsg /* $OpenBSD: ossl_typ.h,v 1.31 2024/05/27 09:12:32 jsg Exp $ */ 2da347917Sbeck /* ==================================================================== 3da347917Sbeck * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 4da347917Sbeck * 5da347917Sbeck * Redistribution and use in source and binary forms, with or without 6da347917Sbeck * modification, are permitted provided that the following conditions 7da347917Sbeck * are met: 8da347917Sbeck * 9da347917Sbeck * 1. Redistributions of source code must retain the above copyright 10da347917Sbeck * notice, this list of conditions and the following disclaimer. 11da347917Sbeck * 12da347917Sbeck * 2. Redistributions in binary form must reproduce the above copyright 13da347917Sbeck * notice, this list of conditions and the following disclaimer in 14da347917Sbeck * the documentation and/or other materials provided with the 15da347917Sbeck * distribution. 16da347917Sbeck * 17da347917Sbeck * 3. All advertising materials mentioning features or use of this 18da347917Sbeck * software must display the following acknowledgment: 19da347917Sbeck * "This product includes software developed by the OpenSSL Project 20da347917Sbeck * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 21da347917Sbeck * 22da347917Sbeck * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 23da347917Sbeck * endorse or promote products derived from this software without 24da347917Sbeck * prior written permission. For written permission, please contact 25da347917Sbeck * openssl-core@openssl.org. 26da347917Sbeck * 27da347917Sbeck * 5. Products derived from this software may not be called "OpenSSL" 28da347917Sbeck * nor may "OpenSSL" appear in their names without prior written 29da347917Sbeck * permission of the OpenSSL Project. 30da347917Sbeck * 31da347917Sbeck * 6. Redistributions of any form whatsoever must retain the following 32da347917Sbeck * acknowledgment: 33da347917Sbeck * "This product includes software developed by the OpenSSL Project 34da347917Sbeck * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 35da347917Sbeck * 36da347917Sbeck * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 37da347917Sbeck * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 38da347917Sbeck * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 39da347917Sbeck * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 40da347917Sbeck * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 41da347917Sbeck * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 42da347917Sbeck * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 43da347917Sbeck * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 44da347917Sbeck * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 45da347917Sbeck * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 46da347917Sbeck * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 47da347917Sbeck * OF THE POSSIBILITY OF SUCH DAMAGE. 48da347917Sbeck * ==================================================================== 49da347917Sbeck * 50da347917Sbeck * This product includes cryptographic software written by Eric Young 51da347917Sbeck * (eay@cryptsoft.com). This product includes software written by Tim 52da347917Sbeck * Hudson (tjh@cryptsoft.com). 53da347917Sbeck * 54da347917Sbeck */ 55da347917Sbeck 56da347917Sbeck #ifndef HEADER_OPENSSL_TYPES_H 57da347917Sbeck #define HEADER_OPENSSL_TYPES_H 58da347917Sbeck 5920175b85Sjsing #include <openssl/opensslconf.h> 603a5f3d0eSmarkus 61da347917Sbeck typedef struct asn1_string_st ASN1_INTEGER; 62da347917Sbeck typedef struct asn1_string_st ASN1_ENUMERATED; 63da347917Sbeck typedef struct asn1_string_st ASN1_BIT_STRING; 64da347917Sbeck typedef struct asn1_string_st ASN1_OCTET_STRING; 65da347917Sbeck typedef struct asn1_string_st ASN1_PRINTABLESTRING; 66da347917Sbeck typedef struct asn1_string_st ASN1_T61STRING; 67da347917Sbeck typedef struct asn1_string_st ASN1_IA5STRING; 68da347917Sbeck typedef struct asn1_string_st ASN1_GENERALSTRING; 69da347917Sbeck typedef struct asn1_string_st ASN1_UNIVERSALSTRING; 70da347917Sbeck typedef struct asn1_string_st ASN1_BMPSTRING; 71da347917Sbeck typedef struct asn1_string_st ASN1_UTCTIME; 72da347917Sbeck typedef struct asn1_string_st ASN1_TIME; 73da347917Sbeck typedef struct asn1_string_st ASN1_GENERALIZEDTIME; 74da347917Sbeck typedef struct asn1_string_st ASN1_VISIBLESTRING; 75da347917Sbeck typedef struct asn1_string_st ASN1_UTF8STRING; 765cdd308eSdjm typedef struct asn1_string_st ASN1_STRING; 77da347917Sbeck typedef int ASN1_BOOLEAN; 78da347917Sbeck typedef int ASN1_NULL; 79da347917Sbeck 80292b1e0cStb typedef struct asn1_object_st ASN1_OBJECT; 81292b1e0cStb 825cdd308eSdjm typedef struct ASN1_ITEM_st ASN1_ITEM; 830a5d6edeSdjm typedef struct asn1_pctx_st ASN1_PCTX; 840a5d6edeSdjm 854fcf65c5Sdjm #ifdef BIGNUM 864fcf65c5Sdjm #undef BIGNUM 874fcf65c5Sdjm #endif 884fcf65c5Sdjm typedef struct bignum_st BIGNUM; 894fcf65c5Sdjm typedef struct bignum_ctx BN_CTX; 904fcf65c5Sdjm typedef struct bn_blinding_st BN_BLINDING; 914fcf65c5Sdjm typedef struct bn_mont_ctx_st BN_MONT_CTX; 924fcf65c5Sdjm typedef struct bn_gencb_st BN_GENCB; 934fcf65c5Sdjm 9400451bf8Stb typedef struct bio_st BIO; 954fcf65c5Sdjm typedef struct buf_mem_st BUF_MEM; 964fcf65c5Sdjm 97da347917Sbeck typedef struct evp_cipher_st EVP_CIPHER; 98da347917Sbeck typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; 997d242c13Stb typedef struct evp_md_st EVP_MD; 1007d242c13Stb typedef struct evp_md_ctx_st EVP_MD_CTX; 101da347917Sbeck typedef struct evp_pkey_st EVP_PKEY; 102da347917Sbeck 1030a5d6edeSdjm typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; 1040a5d6edeSdjm 1050a5d6edeSdjm typedef struct evp_pkey_method_st EVP_PKEY_METHOD; 1060a5d6edeSdjm typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; 1070a5d6edeSdjm 108f678e530Stb typedef struct evp_Encode_Ctx_st EVP_ENCODE_CTX; 109f678e530Stb 110f678e530Stb typedef struct hmac_ctx_st HMAC_CTX; 111f678e530Stb 1124fcf65c5Sdjm typedef struct dh_st DH; 1134fcf65c5Sdjm typedef struct dh_method DH_METHOD; 1144fcf65c5Sdjm 1154fcf65c5Sdjm typedef struct dsa_st DSA; 1164fcf65c5Sdjm typedef struct dsa_method DSA_METHOD; 1174fcf65c5Sdjm 11873b8bd0cStb typedef struct ec_key_st EC_KEY; 11973b8bd0cStb typedef struct ec_key_method_st EC_KEY_METHOD; 12073b8bd0cStb 1214fcf65c5Sdjm typedef struct rsa_st RSA; 1224fcf65c5Sdjm typedef struct rsa_meth_st RSA_METHOD; 123e3ac9fd6Stb typedef struct rsa_pss_params_st RSA_PSS_PARAMS; 1244fcf65c5Sdjm 1254fcf65c5Sdjm typedef struct rand_meth_st RAND_METHOD; 1264fcf65c5Sdjm 127da347917Sbeck typedef struct x509_st X509; 128da347917Sbeck typedef struct X509_algor_st X509_ALGOR; 129da347917Sbeck typedef struct X509_crl_st X509_CRL; 1300a5d6edeSdjm typedef struct x509_revoked_st X509_REVOKED; 131da347917Sbeck typedef struct X509_name_st X509_NAME; 1320a5d6edeSdjm typedef struct X509_pubkey_st X509_PUBKEY; 133da347917Sbeck typedef struct x509_store_st X509_STORE; 134da347917Sbeck typedef struct x509_store_ctx_st X509_STORE_CTX; 1350a5d6edeSdjm 136838f0b6dStb typedef struct x509_object_st X509_OBJECT; 137838f0b6dStb typedef struct x509_lookup_st X509_LOOKUP; 138838f0b6dStb typedef struct x509_lookup_method_st X509_LOOKUP_METHOD; 139838f0b6dStb typedef struct X509_VERIFY_PARAM_st X509_VERIFY_PARAM; 140838f0b6dStb 1410a5d6edeSdjm typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; 142da347917Sbeck 1434fcf65c5Sdjm typedef struct v3_ext_ctx X509V3_CTX; 1444fcf65c5Sdjm typedef struct conf_st CONF; 1454fcf65c5Sdjm 1464fcf65c5Sdjm typedef struct ui_st UI; 1474fcf65c5Sdjm typedef struct ui_method_st UI_METHOD; 1484fcf65c5Sdjm 149da347917Sbeck typedef struct engine_st ENGINE; 1500a5d6edeSdjm typedef struct ssl_st SSL; 1510a5d6edeSdjm typedef struct ssl_ctx_st SSL_CTX; 152da347917Sbeck 1530a5d6edeSdjm typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; 1540a5d6edeSdjm typedef struct DIST_POINT_st DIST_POINT; 1550a5d6edeSdjm typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; 1560a5d6edeSdjm typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; 1570a5d6edeSdjm 15871743258Sjmc /* If placed in pkcs12.h, we end up with a circular dependency with pkcs7.h */ 159da347917Sbeck #define DECLARE_PKCS12_STACK_OF(type) /* Nothing */ 160da347917Sbeck #define IMPLEMENT_PKCS12_STACK_OF(type) /* Nothing */ 161da347917Sbeck 1624fcf65c5Sdjm typedef struct crypto_ex_data_st CRYPTO_EX_DATA; 1634fcf65c5Sdjm /* Callback types for crypto.h */ 1644fcf65c5Sdjm typedef int CRYPTO_EX_new(void *parent, void *ptr, CRYPTO_EX_DATA *ad, 1654fcf65c5Sdjm int idx, long argl, void *argp); 1664fcf65c5Sdjm typedef void CRYPTO_EX_free(void *parent, void *ptr, CRYPTO_EX_DATA *ad, 1674fcf65c5Sdjm int idx, long argl, void *argp); 1689fd09bd6Sjsing typedef int CRYPTO_EX_dup(CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, 1699fd09bd6Sjsing void *from_d, int idx, long argl, void *argp); 1704fcf65c5Sdjm 1714fcf65c5Sdjm typedef struct ocsp_req_ctx_st OCSP_REQ_CTX; 1724fcf65c5Sdjm typedef struct ocsp_response_st OCSP_RESPONSE; 1734fcf65c5Sdjm typedef struct ocsp_responder_id_st OCSP_RESPID; 1744fcf65c5Sdjm 175aff4783bSbeck typedef struct sct_st SCT; 176aff4783bSbeck typedef struct sct_ctx_st SCT_CTX; 177aff4783bSbeck typedef struct ctlog_st CTLOG; 178aff4783bSbeck typedef struct ctlog_store_st CTLOG_STORE; 179aff4783bSbeck typedef struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX; 180aff4783bSbeck 181da347917Sbeck #endif /* def HEADER_OPENSSL_TYPES_H */ 182