1109998Smarkm/* ==================================================================== 2109998Smarkm * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 3109998Smarkm * 4109998Smarkm * Redistribution and use in source and binary forms, with or without 5109998Smarkm * modification, are permitted provided that the following conditions 6109998Smarkm * are met: 7109998Smarkm * 8109998Smarkm * 1. Redistributions of source code must retain the above copyright 9280304Sjkim * notice, this list of conditions and the following disclaimer. 10109998Smarkm * 11109998Smarkm * 2. Redistributions in binary form must reproduce the above copyright 12109998Smarkm * notice, this list of conditions and the following disclaimer in 13109998Smarkm * the documentation and/or other materials provided with the 14109998Smarkm * distribution. 15109998Smarkm * 16109998Smarkm * 3. All advertising materials mentioning features or use of this 17109998Smarkm * software must display the following acknowledgment: 18109998Smarkm * "This product includes software developed by the OpenSSL Project 19109998Smarkm * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 20109998Smarkm * 21109998Smarkm * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 22109998Smarkm * endorse or promote products derived from this software without 23109998Smarkm * prior written permission. For written permission, please contact 24109998Smarkm * openssl-core@openssl.org. 25109998Smarkm * 26109998Smarkm * 5. Products derived from this software may not be called "OpenSSL" 27109998Smarkm * nor may "OpenSSL" appear in their names without prior written 28109998Smarkm * permission of the OpenSSL Project. 29109998Smarkm * 30109998Smarkm * 6. Redistributions of any form whatsoever must retain the following 31109998Smarkm * acknowledgment: 32109998Smarkm * "This product includes software developed by the OpenSSL Project 33109998Smarkm * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 34109998Smarkm * 35109998Smarkm * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 36109998Smarkm * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 37109998Smarkm * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 38109998Smarkm * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 39109998Smarkm * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 40109998Smarkm * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 41109998Smarkm * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 42109998Smarkm * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 43109998Smarkm * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 44109998Smarkm * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 45109998Smarkm * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 46109998Smarkm * OF THE POSSIBILITY OF SUCH DAMAGE. 47109998Smarkm * ==================================================================== 48109998Smarkm * 49109998Smarkm * This product includes cryptographic software written by Eric Young 50109998Smarkm * (eay@cryptsoft.com). This product includes software written by Tim 51109998Smarkm * Hudson (tjh@cryptsoft.com). 52109998Smarkm * 53109998Smarkm */ 54109998Smarkm 55109998Smarkm#ifndef HEADER_OPENSSL_TYPES_H 56280304Sjkim# define HEADER_OPENSSL_TYPES_H 57109998Smarkm 58273149Sjkim#ifdef __cplusplus 59273149Sjkimextern "C" { 60273149Sjkim#endif 61273149Sjkim 62280304Sjkim# include <openssl/e_os2.h> 63109998Smarkm 64280304Sjkim# ifdef NO_ASN1_TYPEDEFS 65280304Sjkim# define ASN1_INTEGER ASN1_STRING 66280304Sjkim# define ASN1_ENUMERATED ASN1_STRING 67280304Sjkim# define ASN1_BIT_STRING ASN1_STRING 68280304Sjkim# define ASN1_OCTET_STRING ASN1_STRING 69280304Sjkim# define ASN1_PRINTABLESTRING ASN1_STRING 70280304Sjkim# define ASN1_T61STRING ASN1_STRING 71280304Sjkim# define ASN1_IA5STRING ASN1_STRING 72280304Sjkim# define ASN1_UTCTIME ASN1_STRING 73280304Sjkim# define ASN1_GENERALIZEDTIME ASN1_STRING 74280304Sjkim# define ASN1_TIME ASN1_STRING 75280304Sjkim# define ASN1_GENERALSTRING ASN1_STRING 76280304Sjkim# define ASN1_UNIVERSALSTRING ASN1_STRING 77280304Sjkim# define ASN1_BMPSTRING ASN1_STRING 78280304Sjkim# define ASN1_VISIBLESTRING ASN1_STRING 79280304Sjkim# define ASN1_UTF8STRING ASN1_STRING 80280304Sjkim# define ASN1_BOOLEAN int 81280304Sjkim# define ASN1_NULL int 82280304Sjkim# else 83109998Smarkmtypedef struct asn1_string_st ASN1_INTEGER; 84109998Smarkmtypedef struct asn1_string_st ASN1_ENUMERATED; 85109998Smarkmtypedef struct asn1_string_st ASN1_BIT_STRING; 86109998Smarkmtypedef struct asn1_string_st ASN1_OCTET_STRING; 87109998Smarkmtypedef struct asn1_string_st ASN1_PRINTABLESTRING; 88109998Smarkmtypedef struct asn1_string_st ASN1_T61STRING; 89109998Smarkmtypedef struct asn1_string_st ASN1_IA5STRING; 90109998Smarkmtypedef struct asn1_string_st ASN1_GENERALSTRING; 91109998Smarkmtypedef struct asn1_string_st ASN1_UNIVERSALSTRING; 92109998Smarkmtypedef struct asn1_string_st ASN1_BMPSTRING; 93109998Smarkmtypedef struct asn1_string_st ASN1_UTCTIME; 94109998Smarkmtypedef struct asn1_string_st ASN1_TIME; 95109998Smarkmtypedef struct asn1_string_st ASN1_GENERALIZEDTIME; 96109998Smarkmtypedef struct asn1_string_st ASN1_VISIBLESTRING; 97109998Smarkmtypedef struct asn1_string_st ASN1_UTF8STRING; 98238405Sjkimtypedef struct asn1_string_st ASN1_STRING; 99109998Smarkmtypedef int ASN1_BOOLEAN; 100109998Smarkmtypedef int ASN1_NULL; 101280304Sjkim# endif 102109998Smarkm 103238405Sjkimtypedef struct ASN1_ITEM_st ASN1_ITEM; 104238405Sjkimtypedef struct asn1_pctx_st ASN1_PCTX; 105238405Sjkim 106280304Sjkim# ifdef OPENSSL_SYS_WIN32 107280304Sjkim# undef X509_NAME 108280304Sjkim# undef X509_EXTENSIONS 109280304Sjkim# undef X509_CERT_PAIR 110280304Sjkim# undef PKCS7_ISSUER_AND_SERIAL 111280304Sjkim# undef OCSP_REQUEST 112280304Sjkim# undef OCSP_RESPONSE 113280304Sjkim# endif 114109998Smarkm 115280304Sjkim# ifdef BIGNUM 116280304Sjkim# undef BIGNUM 117280304Sjkim# endif 118160814Ssimontypedef struct bignum_st BIGNUM; 119160814Ssimontypedef struct bignum_ctx BN_CTX; 120160814Ssimontypedef struct bn_blinding_st BN_BLINDING; 121160814Ssimontypedef struct bn_mont_ctx_st BN_MONT_CTX; 122160814Ssimontypedef struct bn_recp_ctx_st BN_RECP_CTX; 123160814Ssimontypedef struct bn_gencb_st BN_GENCB; 124160814Ssimon 125160814Ssimontypedef struct buf_mem_st BUF_MEM; 126160814Ssimon 127109998Smarkmtypedef struct evp_cipher_st EVP_CIPHER; 128109998Smarkmtypedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; 129109998Smarkmtypedef struct env_md_st EVP_MD; 130109998Smarkmtypedef struct env_md_ctx_st EVP_MD_CTX; 131109998Smarkmtypedef struct evp_pkey_st EVP_PKEY; 132109998Smarkm 133238405Sjkimtypedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; 134238405Sjkim 135238405Sjkimtypedef struct evp_pkey_method_st EVP_PKEY_METHOD; 136238405Sjkimtypedef struct evp_pkey_ctx_st EVP_PKEY_CTX; 137238405Sjkim 138160814Ssimontypedef struct dh_st DH; 139160814Ssimontypedef struct dh_method DH_METHOD; 140160814Ssimon 141160814Ssimontypedef struct dsa_st DSA; 142160814Ssimontypedef struct dsa_method DSA_METHOD; 143160814Ssimon 144160814Ssimontypedef struct rsa_st RSA; 145160814Ssimontypedef struct rsa_meth_st RSA_METHOD; 146160814Ssimon 147160814Ssimontypedef struct rand_meth_st RAND_METHOD; 148160814Ssimon 149160814Ssimontypedef struct ecdh_method ECDH_METHOD; 150160814Ssimontypedef struct ecdsa_method ECDSA_METHOD; 151160814Ssimon 152109998Smarkmtypedef struct x509_st X509; 153109998Smarkmtypedef struct X509_algor_st X509_ALGOR; 154109998Smarkmtypedef struct X509_crl_st X509_CRL; 155238405Sjkimtypedef struct x509_crl_method_st X509_CRL_METHOD; 156238405Sjkimtypedef struct x509_revoked_st X509_REVOKED; 157109998Smarkmtypedef struct X509_name_st X509_NAME; 158238405Sjkimtypedef struct X509_pubkey_st X509_PUBKEY; 159109998Smarkmtypedef struct x509_store_st X509_STORE; 160109998Smarkmtypedef struct x509_store_ctx_st X509_STORE_CTX; 161109998Smarkm 162238405Sjkimtypedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; 163238405Sjkim 164160814Ssimontypedef struct v3_ext_ctx X509V3_CTX; 165160814Ssimontypedef struct conf_st CONF; 166160814Ssimon 167160814Ssimontypedef struct store_st STORE; 168160814Ssimontypedef struct store_method_st STORE_METHOD; 169160814Ssimon 170160814Ssimontypedef struct ui_st UI; 171160814Ssimontypedef struct ui_method_st UI_METHOD; 172160814Ssimon 173160814Ssimontypedef struct st_ERR_FNS ERR_FNS; 174160814Ssimon 175109998Smarkmtypedef struct engine_st ENGINE; 176238405Sjkimtypedef struct ssl_st SSL; 177238405Sjkimtypedef struct ssl_ctx_st SSL_CTX; 178109998Smarkm 179160814Ssimontypedef struct X509_POLICY_NODE_st X509_POLICY_NODE; 180160814Ssimontypedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; 181160814Ssimontypedef struct X509_POLICY_TREE_st X509_POLICY_TREE; 182160814Ssimontypedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; 183160814Ssimon 184238405Sjkimtypedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; 185238405Sjkimtypedef struct DIST_POINT_st DIST_POINT; 186238405Sjkimtypedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; 187238405Sjkimtypedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; 188238405Sjkim 189109998Smarkm /* If placed in pkcs12.h, we end up with a circular depency with pkcs7.h */ 190280304Sjkim# define DECLARE_PKCS12_STACK_OF(type)/* Nothing */ 191280304Sjkim# define IMPLEMENT_PKCS12_STACK_OF(type)/* Nothing */ 192109998Smarkm 193160814Ssimontypedef struct crypto_ex_data_st CRYPTO_EX_DATA; 194160814Ssimon/* Callback types for crypto.h */ 195280304Sjkimtypedef int CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, 196280304Sjkim int idx, long argl, void *argp); 197280304Sjkimtypedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, 198280304Sjkim int idx, long argl, void *argp); 199280304Sjkimtypedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, 200280304Sjkim void *from_d, int idx, long argl, void *argp); 201160814Ssimon 202194206Ssimontypedef struct ocsp_req_ctx_st OCSP_REQ_CTX; 203194206Ssimontypedef struct ocsp_response_st OCSP_RESPONSE; 204194206Ssimontypedef struct ocsp_responder_id_st OCSP_RESPID; 205194206Ssimon 206273149Sjkim#ifdef __cplusplus 207273149Sjkim} 208273149Sjkim#endif 209280304Sjkim#endif /* def HEADER_OPENSSL_TYPES_H */ 210